ServerAlias ​​www.example.com не распознается - PullRequest
2 голосов
/ 11 июня 2010

Ниже мой конфигурационный файл:

NameVirtualHost 12.34.56.78:80  

<VirtualHost 12.34.56.78:80>  
    ServerAdmin admin@domain1.com  
    ServerName domain1.com  
    ServerAlias www.domain1.com   
    DocumentRoot /srv/www/domain1.com/public_html1/  
    ErrorLog /srv/www/domain1.com/logs/error.log  
    CustomLog /srv/www/domain1.com/logs/access.log combined  
</VirtualHost>  

<VirtualHost 12.34.56.78:80>  
    ServerAdmin admin@domain2.com  
    ServerName domain2.com  
    ServerAlias www.domain2.com  
    DocumentRoot /srv/www/domain2.com/public_html1/  
    ErrorLog /srv/www/domain2.com/logs/error.log  
    CustomLog /srv/www/domain2.com/logs/access.log combined  
</VirtualHost> 

Дело в том, что когда я помещаю www.domain1.com в браузер, apache2 не получает веб-страницу, находящуюся в /srv/www/domain1.com/public_html1/, вместо этого он получает страницу из корня документа по умолчанию, определенного в другом файле. Однако если я поставлю www.domain2.com, все работает нормально. Я не вижу никакой разницы между двумя блоками конфигурации VirtualHost, поэтому мне интересно, что же делает разницу. Кстати, я не поместил ни одного файла .htaccess в корневой каталог документа.

Ответы [ 3 ]

5 голосов
/ 30 декабря 2010

Попробуйте проверить конфигурацию Apache, введя:

/ usr / sbin / apache2ctl -S

Полагаю, ваш виртуальный хост по умолчанию использует "www.domain1.com" в качестве имени сервера, поэтому он отвечает на запрос к "www.domain1.com".

На моей машине это произошло из-за того, что "www.domain1.com" является именем хоста моей машины. Если ServerName не указано, Apache пытается угадать - вызывая вышеупомянутую проблему.

Я решил эту проблему, указав «ServerName default» в sites-available / default.

Это также может помочь:

http://httpd.apache.org/docs/current/dns-caveats.html

2 голосов
/ 04 мая 2013

Если вы работаете в Windows и, возможно, используете ZendSever, вы ДОЛЖНЫ сделать следующее:

Открыть файл "hosts" в каталоге "C: \ Windows \ System32 \ drivers \ etc"

Добавить

127.0.0.1 www.domain1.com

под

127.0.0.1 localhost
127.0.0.1 domain1.com


Это должно выглядеть так:

127.0.0.1 localhost

127.0.0.1 domain1.com

127.0.0.1 www.domain1.com

127.0.0.1 domain2.com

127.0.0.1 www.domain2.com

127.0.0.1 domain3.com

127.0.0.1 www.domain3.com

Все домены должны быть зарегистрированы в этом файле.

1 голос
/ 27 февраля 2013

Просто хотел сказать, что это меня тоже поразило, и изменение ServerName на сайте apache по умолчанию работало для меня, как и простое отключение этого сайта с помощью

a2dissite default

Затем перезагрузите apache.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...