Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache WAMP上的虚拟主机导致本地主机上禁用403。。。其他别名仍然有效_Apache_Wamp - Fatal编程技术网

Apache WAMP上的虚拟主机导致本地主机上禁用403。。。其他别名仍然有效

Apache WAMP上的虚拟主机导致本地主机上禁用403。。。其他别名仍然有效,apache,wamp,Apache,Wamp,我刚刚意识到,WAMP上的任何其他内容都无法访问,除非它位于虚拟主机别名下。例如:如果我将我的vHost命名为“mysite.dev”,我只能访问mysite.dev,其他所有内容都会给出403禁止的错误。如果在mysite.dev之外添加一个名为anothersite.dev的vHost,则只能访问这些站点。在localhost下,我唯一可以访问的是PHPMyAdmin。我已经取消了Apache httpd.conf文件中包含vHosts.conf的行的注释。在修改vHosts.conf文件之

我刚刚意识到,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>

好的,首先,
httpd VHOST.conf
文件(VHOST和vhost2)中的前两个VHOST定义是Apache提供的示例,用于帮助您入门,当然,它们指向不存在的文件夹,应该删除

第二,在创建虚拟主机时,应在
组中包含VHOST的访问权限

第三,您应该始终为本地主机创建VHOST,因为一旦创建VHOST,Apache就会忽略
httpd.conf

因此,您的
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>
然后重新启动dnscache,从一个同样以管理员权限启动的命令行获取这些更改

net stop dnscache
net start dnscache

这篇文章可能会帮助你

你是说你可以访问dummy host.example.com`尽管没有匹配的
hosts
条目?你能再检查一下你的配置吗?
NameVirtualHost*:80
127.0.0.1  localhost
127.0.0.1  mysite.dev

::1  localhost
::1 mysite.dev
net stop dnscache
net start dnscache