我在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>
有人能认出这个问题吗?
答案 0 :(得分:13)
我猜你错过了某个地方的NameVirtualHost 127.0.0.1:80
行:)
答案 1 :(得分:4)
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>
答案 2 :(得分:3)
您不必将虚拟主机信息写入httpd.conf
。只需取消注释您加载conf/extra/httpd-vhosts.conf
的行,然后转到此文件并将您的信息放在那里。应该工作。
我的httpd-vhosts.conf
示例:
NameVirtualHost *:80
<VirtualHost 127.0.0.1>
DocumentRoot "C:/wamp/www"
ServerName dev
</VirtualHost>
答案 3 :(得分:1)
您需要包含类似于以下行
的内容
NameVirtualHost *
此外,由于SSL协议的限制,您似乎正在使用与服务器无关的https连接。 http请求中的Host
标头已加密,当apache对其进行解密时,它已将请求传递给其中一个虚拟主机。
答案 4 :(得分:0)
我改变了
NameVirtualHost *:80
到
NameVirtualHost 127.0.0.1:80
它对我有用
答案 5 :(得分:0)
如果 "Listen [::0]:80"
不起作用,请不要忘记检查 httpd.conf
中的 NameVirtualHost
之类的行,并在那里添加您的端口。
答案 6 :(得分:-1)
嘿伙计们,我写了一篇非常简单的教程,其中包括整个过程。如果您在评论中遇到任何问题,请告诉我。