»

Apache主机403错误信息Forbidden error was encountered的解决办法

    网络安全  
cookiesCDN的问题ApacheCDN防盗链WordPress插件建站wordpressweb.configIIS网站镜像客户申请状态网站优化浏览器爬虫访问插件网络安全又拍云CDN工作访客FAQ缓存windows主机

很多网友使用Apache主机的时候都会自己定义403和404信息主页。然后在 .htaccess 文件中进行设置。如下面这种:

<Files 403.shtml>
    order allow,deny
    allow from all
</Files>
deny from 5.0.0.0/8
ErrorDocument 403 /403.shtml

上述是不采用CDN加速时候对某IP地址段进行限制访问。

 

但是如果使用 CDN 加速,则需要使用 RewriteCond %{HTTP:X-FORWARDED-FOR} ^5\. [NC] 这种形式的写法。这个已在以前文章中写过,这里不赘述。然后 .htaccess 中使用下面的代码:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTP:X-FORWARDED-FOR} ^5\. [NC]
    RewriteRule ^(.*)$ - [F,L]
</IfModule>
ErrorDocument 403 /403.shtml

 

但是上述情况经常会出现一个问题,就是自定义的 403.shml 文件并没有起作用,而还是显示系统自带的 403 提示信息。而且,下面还多出一行文字:

Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.

这行信息告诉我们:你的 403 页面设置过程中出现了问题,使用 ErrorDocument 没有成功。这个并不是什么权限和目录的问题,而是网友忽略了一个重要原因:403.shml 文件也被禁止了,用户无法获取该文件。这才是导致上述信息的原因。所以,设置的时候应该把该文件排除在禁止行列之外,才能调用该文件进行重写。

本文禁止住转载。任何形式转载请联系作者(时光在路上 www.timezls.com)。时光在路上保留所有权利

.htaccess 文件中代码应该这样设置:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_URI} !403\.shtml$ [NC]
    RewriteCond %{HTTP:X-FORWARDED-FOR} ^5\. [NC]
    RewriteRule ^(.*)$ - [F,L]
</IfModule>
ErrorDocument 403 /403.shtml

 

这样就不会出现上述 a 403 Forbidden error was encountered 的提示信息了。

本文禁止住转载。任何形式转载请联系作者(时光在路上 www.timezls.com)。时光在路上保留所有权利

时光在路上扫码阅读、分享
  • 版权声明:该文章由 时光在路上 发表,共 998字。除非特别标注来源,否则为原创。详见《版权声明》部分。
  • 转载请注明:文章标题和文章链接 - 时光在路上 - 也可直接“复制本文链接” 或 使用右边二维码分享本文 →