Назад | Перейти на главную страницу

Запретить перенаправление для конкретного REQUEST_URI

Я добавил каталог в общую папку своего сайта и поместил в него следующий файл .htaccess:

AuthName "Restricted Area"
AuthType Basic
AuthUserFile /path/to/.htpasswd
AuthGroupFile /
Require valid-user

В .htpasswd файл существует и имеет допустимое содержание.

В общей папке сайта есть файл .htaccess со следующим правилом перезаписи:

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php

С этой настройкой мой /protected папка не защищена.

Я модифицировал рут .htaccess переписать правило с тем, что я должен предотвратить mod_rewrite от попытки переписать запросы на мой /protected папка, как показано ниже:

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/protected
RewriteRule . index.php

Но это вроде не подействовало:

Есть index.php файл внутри моей защищенной папки (/protected/index.php) со следующим содержанием:

die('protected');

Может ли кто-нибудь увидеть проблему с таким подходом, или с моими модификациями рута .htaccess переписать правило?

Facepalm!

Мои условия перезаписи делать работает как положено, проблема была в моем /protected/.htaccess файл:

Для базовой аутентификации сервер записывает заголовок «401 Unauthorized», а затем ищет документ об ошибке на основе заранее определенного пути. В большинстве случаев документ об ошибке не существует в каталоге, который вы хотите защитить, поэтому запрос обрабатывается механизмом перезаписи, который выдает ошибку 404.

Решение заключалось в том, чтобы добавить в /protected/.htaccess файлы:

ErrorDocument 401 "Unauthorized Access"
RewriteEngine off

... Authorisation lines

Из Конфликт между перезаписью URL-адресов Apache и базовой аутентификацией.

Старый вопрос, но у меня возникла эта проблема. Вы также можете установить ошибку 401 в основном файле .htaccess, если вы не хотите или не можете редактировать защищенный .htaccess и у вас еще нет набора документов с ошибкой 401.