Я настраиваю небольшой веб-сайт на рабочем сервере. Пока мы завершаем все настройки для последнего домена, мы разместили его на dev.domain.com, чтобы наши посетители не видели потенциально ошибочный сайт при переходе на www.domain.com или domain.com. Я сделал это, указав виртуальный хост, улавливающий dev.domain.com с корневым каталогом документа «реального» сайта, и создав новый сайт с виртуальным хостом, улавливающим www.domain.com и domain.com, с корневым каталогом документа, указывающим на параллельный каталог. на «настоящий» сайт, не содержащий ничего, кроме index.html. Этот сайт будет показывать посетителю сообщение о реконструкции сайта.
Это файлы конфигурации сайта:
# dev.domain.com
<VirtualHost *:80>
ServerAdmin admin@domain.com
ServerName dev.domain.com
DirectoryIndex index.html
DocumentRoot /var/www/www.domain.com/htdocs/
ScriptAlias /cgi-bin/ /var/www/www.domain.com/cgi-bin/
<Location /cgi-bin>
Options +ExecCGI
</Location>
ErrorLog /var/log/apache2/www.domain.com/error.log
CustomLog /var/log/apache2/www.domain.com/access.log combined
</VirtualHost>
# a-notice-site
<VirtualHost *:80>
ServerAdmin admin@domain.com
ServerName www.domain.com
ServerAlias domain.com
DirectoryIndex index.html
DocumentRoot /var/www/notice-site/htdocs/
ScriptAlias /cgi-bin/ /var/www/www.domain.com/cgi-bin/
<Location /cgi-bin>
Options +ExecCGI
</Location>
ErrorLog /var/log/apache2/www.domain.com/error.log
CustomLog /var/log/apache2/www.domain.com/access.log combined
</VirtualHost>
Итак, моя проблема в этом: При вводе www.domain.com, www.domain.com. и даже domain.com., я легко попадаю на сайт уведомлений, но при доступе только к domain.com (без конечной точки) адресная строка моего браузера сообщает мне, что я был перенаправлен на www.domain.com/notice-site/ htdocs, и я получаю 404 о том, что URL-адрес не найден. Доступ к сайту разработчиков работает отлично.
У меня есть небольшая догадка, что это как-то связано с тем, как я настроил виртуальные хосты, но, к сожалению, я не могу понять, почему это может вызвать такой эффект. Кто-нибудь слышал о чем-то подобном или что могло его вызвать?
apache2ctl -S дает:
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80 is a NameVirtualHost
default server www.domain.com (/etc/apache2/sites-enabled/a-notice-site:4)
port 80 namevhost www.domain.com (/etc/apache2/sites-enabled/a-notice-site:4)
port 80 namevhost dev.domain.com (/etc/apache2/sites-enabled/dev.domain.com:4)
Syntax OK
Эти конфигурации выглядят так, как будто они должны работать, вы боретесь с какой-то проблемой браузера? Может быть, браузер, который вы используете, автоматически ставит www перед доменом.com? Можете ли вы очистить кеш браузера и попробовать еще раз? Убедитесь, что вы не нажимаете [Ctrl] + [Enter] или что-то подобное.