Как настроить правило перезаписи Apache для перенаправления всех запросов на 404, если явно не разрешено

#regex #apache #mod-rewrite #http-status-code-404

#регулярное выражение #apache #мод-перезапись #http-status-code-404

Вопрос:

Я ищу в Интернете со вчерашнего дня и не смог найти ответ. По крайней мере, один, который работает для apache2.

Мне просто нужен набор правил rewritemod, которые заставят apache перенаправлять все на 404, но позволят мне явно переопределить его для некоторых файлов / папок.

Я пробовал использовать инклюзивное правило, но не смог заставить его работать.

Спасибо.

Ответ №1:

Просто попробуйте эту строку в вашем файле .htaccess:

 RewriteRule ^(?!(allowedFile.html|allowedDirectory/)) - [R=404,L,NC] 
  

Приведенное выше правило выдает значение 404 для всего, кроме вызываемого файла allowedFile.html и вызываемой папки allowedDirectory .

Ответ №2:

 RewriteRule ^/protectedfolder/(.*) -  [L] /* no substitution , serve as it is for this folder*/
RewriteRule ^$ - [R=404,L] /*reject everything */
  

Комментарии:

1. спасибо, чувак, но это работает не так, как ожидалось. Я хочу перенаправить все на 404, даже 403 (запрещенные) ошибки. Я пытался использовать перезапись, подобную этой: ‘Перезапись%{REQUEST_URI} ! также ^/images’ и простое правило для перенаправления всего, но оно не работает.