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

Необычное поведение с NameVirtualHost в apache2, два сайта на один ip

Я попытался использовать NamedVirtualHosts для настройки одного сервера для обработки двух веб-сайтов. Я пробовал это впервые и получаю очень необычное поведение. В частности, запросы к www.example2.com указывают на / home / stefan / example2, но http://example.com указывает на / home / stefan / example1.

Кто-нибудь знает, что здесь происходит?

/etc/apache2/apache2.conf

...

NameVirtualHost *:80

<VirtualHost *:80>
   DocumentRoot /home/stefan/example1
   ServerName www.example1.com
</VirtualHost>

<VirtualHost *:80>
   DocumentRoot /home/stefan/example2
   ServerName www.example2.com
</VirtualHost>

Я предполагаю, что вы действительно хотели сказать, что www.example2.com идет в нужное место, а example2.com - на сайт www.example1.com.

Вам необходимо использовать директиву «ServerAlias» и вставить туда домен без «www».

Что-то вроде следующего в соответствующем разделе:

ServerAlias ​​example1.com

ServerAlias ​​example2.com

В чем проблема, похоже, работает отлично.

У вас есть виртуальный хостинг для www.example2.com, который ведет в нужное место. Любые имена хостов, для которых у вас нет виртуального хоста (например, example.com), перейдут на первый виртуальный хост.

Из Документы Apache2 -

Поскольку www.example.com стоит первым в файле конфигурации, он имеет наивысший приоритет и может рассматриваться как сервер по умолчанию или как основной. Это означает, что если получен запрос, который не соответствует одной из указанных директив ServerName, он будет обслуживаться этим первым VirtualHost.

Итак, поскольку у вас нет vhost, определенного для example.com, Apache будет использовать vhost по умолчанию. В вашем случае это www.example1.com.