很奇怪的一个问题,我以前从来都没有这样过!访问 http://localhost/ 提示 403 Forbbiden。
我之前的设置一直都是这样的:
httpd.conf
<Directory /> AllowOverride All Options Indexes FollowSymLinks Require all granted </Directory>
extra/httpd-vhost.conf
<VirtualHost *:80> ServerAdmin [email protected] DocumentRoot "d:/localhost" ServerName localhost ServerAlias local ErrorLog "logs/localhost-error.log" CustomLog "logs/localhost-access.log" common </VirtualHost> <VirtualHost *:81> ServerAdmin [email protected] DocumentRoot "d:/wamp/www" ServerName localhost81 ServerAlias local81 ErrorLog "logs/localhost81-error.log" CustomLog "logs/localhost81-access.log" common </VirtualHost>
然后 d:/localhost/ 与 d:/wamp/www 目录下都没有索引文件(如 index.html index.php index.html)以前访问都是默认列出目录的,但是今天打开localhost 却提示403 无权限。
而且修改vhost ,调换 80 端口和 81 端口位置还是这样,百思不得其解!
强迫症,花费了一个下午的时间研究仍旧是没有头绪,晚上回到家里,偶然看到stackoverflow上的一个帖子,http://stackoverflow.com/questions/9110179/adding-virtualhost-fails-access-forbidden-error-403-xampp-windows-7,尝试着修改第一个VirtualHost,在里面加入 <Directory "d:/localhost"> ... </Directory> 重启Apache,可以了。
<VirtualHost *:80> ServerAdmin [email protected] DocumentRoot "d:/localhost" ServerName localhost ServerAlias local ErrorLog "logs/localhost-error.log" CustomLog "logs/localhost-access.log" common <Directory "d:/localhost"> Options Indexes Require all granted </Directory> </VirtualHost>
但是我后来将这一段去掉,然后又重启,访问 http://localhost 又变成可以访问了。等于我还原了所有修改,再去访问localhost 却又不会出现提示 403 Forbbiden了!
而且我将httpd.conf 的<Directory /> ... </Directory>的这一段去掉Options Indexes 这一段,改成如下,再重启Apache:
<Directory /> AllowOverride All Require all granted </Directory>
我访问 http://localhost/ 或者 http://localhost:81,目录还是可以列出来,出鬼了!!
认为wamp 似乎有缓存,而且重启也无法清除?重装也是无法清除。
现在问题并没有再次重现,但如果您有彻底的解决方法,欢迎邮件交流。by [email protected]