Перенаправление 403 не работает - PullRequest
3 голосов
/ 17 мая 2011

Как заставить 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]

Пожалуйста, помогите мне!

Ответы [ 2 ]

7 голосов
/ 17 мая 2011

Попробуйте вместо этого:

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

Источник: http://httpd.apache.org/docs/current/rewrite/flags.html#flag_f

1 голос
/ 17 мая 2011

Если у вас не определено RewriteBase, которое мы не видим в ваших правилах, я думаю, что вы не хотите, чтобы ^ перед тем, как "запретить" ваше выражение, так как технически начиналось бы с '/'

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