繁体   English   中英

WAMP上的虚拟主机导致403在本地主机上被禁止...其他别名仍然有效

[英]Virtual Hosts on WAMP causing 403 forbidden on localhost… other aliases still work

我只是意识到,除非位于虚拟主机别名下,否则WAMP上的其他内容均不可访问。 例如:如果我将我的vHost命名为“ mysite.dev”,则我只能访问mysite.dev,其他所有内容都将显示403禁止错误。 如果在mysite.dev之外添加了一个名为anothersite.dev的vHost,则只能访问那些站点。 我可以访问的在localhost下的唯一内容是PHPMyAdmin。 我已取消注释Apache httpd.conf文件中包含vHosts.conf的行。 在修改vHosts.conf文件之前,不会发生此问题。 这是其他文件的配置:

vHosts.conf:

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "c:/Apache24/docs/dummy-host.example.com"
    ServerName dummy-host.example.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/dummy-host.example.com-error.log"
    CustomLog "logs/dummy-host.example.com-access.log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "c:/Apache24/docs/dummy-host2.example.com"
    ServerName dummy-host2.example.com
    ErrorLog "logs/dummy-host2.example.com-error.log"
    CustomLog "logs/dummy-host2.example.com-access.log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "W:/wamp/www/mysite"
    ServerName mysite.dev
    ErrorLog "logs/dummy-host2.example.com-error.log"
    CustomLog "logs/dummy-host2.example.com-access.log" common
</VirtualHost>

Windows主机文件:

127.0.0.1       localhost
127.0.0.1   mysite.dev

好的,首先, httpd-vhost.conf文件中的前两个VHOST定义(vhost和vhost2)是Apache提供的示例,可以帮助您入门,当然也指向不存在的文件夹应将其删除

其次,当您创建虚拟主机时,应在<Directory....>组中包括VHOST的访问权限。

第三,一旦创建VHOST,就应该始终为localhost创建VHOST Apache会忽略httpd.conf的localhost定义

因此,您的httpd-vhost.conf文件应如下所示

# Should be the first VHOST definition so that it is the default virtual host
# Also access rights should remain restricted to the local PC and the local network
# So that any random ip address attack will recieve an error code and not gain access
<VirtualHost *:80>
    ServerAdmin webmaster@homemail.net
    DocumentRoot "W:/wamp/www"
    ServerName localhost
    <Directory  "W:/wamp/www">
        AllowOverride All
        Require local
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "W:/wamp/www/mysite"
    ServerName mysite.dev
    ErrorLog "logs/mysite.dev-error.log"
    CustomLog "logs/mysite.dev-access.log" common
    <Directory  "W:/wamp/www/mysite">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require local
    </Directory>
</VirtualHost>

完成此操作后,现在需要编辑c:\\windows\\system32\\drivers\\etc\\hosts文件,使其看起来像这样。 您需要具有管理员权限才能编辑此文件,而且某些防病毒套件也可以保护此文件,因此您可能需要暂时停止该保护才能修改此文件。

127.0.0.1  localhost
127.0.0.1  mysite.dev

::1  localhost
::1 mysite.dev

然后从也以admin特权开始的命令行中重新启动dnscache以获取这些更改。

net stop dnscache
net start dnscache

这篇文章可以帮助您了解有关虚拟主机的更多信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM