Назад | Перейти на главную страницу

Проблема Apache с VirtualHosts

Я настраиваю небольшой веб-сайт на рабочем сервере. Пока мы завершаем все настройки для последнего домена, мы разместили его на 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] или что-то подобное.