403 redirect doesn't work

社会主义新天地 提交于 2019-12-07 14:26:41

问题


How to force apache to redirect to a 403 error?
I've tried:

RewriteRule ^forbid/(.*)$ / [R=403,L] 

this caused 500 server error on the whole site

RewriteRule ^forbid/(.*)$ - [R=403,L] 

and

RewriteRule ^forbid/(.*)$ [R=403,L] 

these simply don't work
I have the following .htaccess file:

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]

Please, help me!


回答1:


Try this instead:

RewriteRule ^forbid/(.*)$ - [F]

Source: http://httpd.apache.org/docs/current/rewrite/flags.html#flag_f




回答2:


Unless you have a RewriteBase defined that we don't see in your rules, I think you don't want the ^ before 'forbid' your expression, since it would technically start with '/'

RewriteRule ^forbid/(.*)$ - [R=403,L]
# Instead try
RewriteRule ^/forbid/(.*)$ - [R=403,L]
# Or
RewriteRule forbid/(.*)$ - [R=403,L]


来源:https://stackoverflow.com/questions/6032059/403-redirect-doesnt-work

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!