XAMPP的“Access forbidden”错误解决

XAMPP来配置本地虚拟目录(参见XAMPP使用其它端口)时发生了Access forbidden错误,在网上找到了解决方法。

首先找到XAMPP安装目录下的\apache\conf\extra\httpd-xampp.conf文件,找到这段代码:


<LocationMatch "^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info))">
	Order deny,allow
	Deny from all
	Allow from ::1 127.0.0.0/8 \
		fc00::/7 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 \
		fe80::/10 169.254.0.0/16

	ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</LocationMatch>

require all granted这段代码放到Deny from all的下一行,重启XAMPP就可以了,最终代码如下:


<LocationMatch "^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info))">
	Order deny,allow
	Deny from all
	require all granted
	Allow from ::1 127.0.0.0/8 \
		fc00::/7 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 \
		fe80::/10 169.254.0.0/16

	ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</LocationMatch>

如果是在设置虚拟目录的时候碰到这个问题的话(怎样设置虚拟目录可以参考XAMPP使用其它端口),则要把你设置的目录名称添加到xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info代码后面。如下面这段配置:


Alias /julabs "F:/julabs/"
<Directory "F:/julabs">
	AllowOverride AuthConfig
	Order allow,deny
	Allow from all
</Directory>

这里我设置的目录名为julabs,那就把julabs添加到xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info代码的后面,最终代码如下:


<LocationMatch "^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info|julabs))">
	Order deny,allow
	Deny from all
	require all granted
	Allow from ::1 127.0.0.0/8 \
		fc00::/7 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 \
		fe80::/10 169.254.0.0/16

	ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</LocationMatch>

记住每次修改完配置文件后都要重启XAMPP才能够生效。

此条目发表在 软件 分类目录,贴了 标签。将固定链接加入收藏夹。