У меня есть два виртуальных хоста в Windows (например: test1.dev и test2.dev). Но он всегда загружает содержимое test1.dev для обоих виртуальных хостов.
Ниже приведены мои файлы:
хосты:
127.0.0.1 localhost 127.0.0.1 test1.dev 127.0.0.1 test2.dev
httpd.conf:
<IfModule ssl_module> SSLRandomSeed startup builtin SSLRandomSeed connect builtin </IfModule> Include "c:/wamp/alias/*" <VirtualHost 127.0.0.1> ServerName test1.dev DocumentRoot "C:\wamp\www\test1\public" </VirtualHost> <VirtualHost 127.0.0.1> ServerName test2.dev DocumentRoot "C:\wamp\www\test2\public" </VirtualHost>
Может ли кто-нибудь распознать проблему?
Я предполагаю, что вы потеряли строку NameVirtualHost 127.0.0.1:80
где-то 🙂
Я сделал что-то вроде этого 1 для локального хозяина:
NameVirtualHost localhost:80 <VirtualHost localhost:80> ServerName localhost ServerAlias localhost DocumentRoot D:/wamp/www ErrorLog "D:/wamp/www/error.log" CustomLog D:/wamp/www/access.log common <Directory "D:/wamp/www"> Options -Indexes FollowSymLinks MultiViews AllowOverride All <IfModule mod_access.c> Order allow,deny Allow from all </IfModule> </Directory> </VirtualHost>
2 – и для любого другого локального домена
NameVirtualHost zf.local:80 <VirtualHost zf.local:80> ServerName zf.local ServerAlias zf.local DocumentRoot D:/Workspace/Zend/documentation ErrorLog "D:/Workspace/Zend/documentation/error.log" CustomLog D:/Workspace/Zend/documentation/access.log common <Directory "D:/Workspace/Zend/documentation"> Options -Indexes FollowSymLinks MultiViews AllowOverride All <IfModule mod_access.c> Order allow,deny Allow from all </IfModule> </Directory> </VirtualHost>
Вам не нужно писать информацию виртуального хоста в httpd.conf
. Просто раскомментируйте строку, на которую вы загружаете conf/extra/httpd-vhosts.conf
, затем перейдите в этот файл и поместите свою информацию туда. Должно сработать.
Пример моего httpd-vhosts.conf
:
NameVirtualHost *:80 <VirtualHost 127.0.0.1> DocumentRoot "C:/wamp/www" ServerName dev </VirtualHost>
Вам нужно включить что-то похожее на следующую строку
NameVirtualHost *
Кроме того, похоже, вы используете https-соединение с сервером, который плохо работает с виртуальными хостами из-за ограничения протокола SSL. Заголовок Host
в HTTP-запросе зашифрован и к тому времени, когда apache расшифровывает его, он уже передал запрос одному из виртуального хоста.
Эй, ребята, я написал очень прямое руководство, которое включает в себя весь процесс. Дайте мне знать, если вы столкнетесь с какими-либо проблемами в комментарии.
Я изменился
ИмяVirtualHost *: 80
в
NameVirtualHost 127.0.0.1:80
и это работает для меня