Я попытался использовать 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.