403重定向不起作用
Posted
技术标签:
【中文标题】403重定向不起作用【英文标题】:403 redirect doesn't work 【发布时间】:2011-08-27 06:51:49 【问题描述】:如何强制 apache 重定向到 403 错误? 我试过了:
RewriteRule ^forbid/(.*)$ / [R=403,L]
这导致整个站点出现 500 服务器错误
RewriteRule ^forbid/(.*)$ - [R=403,L]
和
RewriteRule ^forbid/(.*)$ [R=403,L]
这些根本行不通 我有以下 .htaccess 文件:
RewriteEngine on
RewriteRule ^(config|backup)(.*)$ - [F] [NC]
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule ^admin/(.*)$ /admin/index.php?%QUERY_STRING [L,QSA]
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteCond %REQUEST_FILENAME !util
RewriteRule ^(.*)$ index.php?%QUERY_STRING [L,QSA]
请帮帮我!
【问题讨论】:
【参考方案1】:试试这个:
RewriteRule ^forbid/(.*)$ - [F]
来源:http://httpd.apache.org/docs/current/rewrite/flags.html#flag_f
【讨论】:
是的。重定向只存在于3xx
代码范围内,403 Forbidden
是客户端错误,而不是重定向。【参考方案2】:
除非您定义了我们在您的规则中看不到的RewriteBase
,否则我认为您不希望在“禁止”您的表达式之前使用^
,因为它在技术上会以“/”开头
RewriteRule ^forbid/(.*)$ - [R=403,L]
# Instead try
RewriteRule ^/forbid/(.*)$ - [R=403,L]
# Or
RewriteRule forbid/(.*)$ - [R=403,L]
【讨论】:
实际上,我有 RewriteBase,但我忘了复制它。但无论如何这没有任何意义。以上是关于403重定向不起作用的主要内容,如果未能解决你的问题,请参考以下文章