Wamp服务器:多个虚拟主机在Windows上无法工作

7

我在Windows上有两个虚拟主机(例如:test1.dev和test2.dev)。但是它总是为这两个虚拟主机加载test1.dev的内容。

以下是我的文件:

hosts文件:

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>

有人能够识别这个问题吗?
7个回答

13

我猜您在某个地方漏掉了 NameVirtualHost 127.0.0.1:80 这行代码 :)


我在 httpd.conf 文件中添加了 (NameVirtualHost 127.0.0.1:80),现在一切正常。 - Awan

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>

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>

在Windows操作系统目录中,httpd-vhosts.conf文件在哪里? - Naveed
{wamp-dir}\bin\apache\Apache2.2.11\conf\extra\ - Ondrej Slinták
此外,请查看这个指南:http://www.dennisplucinik.com/blog/2007/08/16/setting-up-multiple-virtual-hosts-in-wamp/ - Ondrej Slinták

1
你需要包含类似以下行的内容:

NameVirtualHost *

此外,似乎您正在使用与虚拟主机不兼容的https连接,因为SSL协议限制的原因。 http请求中的“Host”标头被加密,当apache解密它时,它已经将请求传递给其中一个虚拟主机。

0

我把

NameVirtualHost *:80

改成了

NameVirtualHost 127.0.0.1:80

现在可以正常工作了。


0
不要忘记检查像 "Listen [::0]:80" 这样的行在 httpd.conf 中是否存在,并在那里添加您的端口,如果 NameVirtualHost 不起作用。

-3

3
请仅返回翻译后的内容,不要链接到可能会被删除的外部页面,如博客。 - thoroc
该页面显示“页面未找到”,正如预测的那样。 - Lajos Mészáros

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接