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

Как исключить подпапку из HTaccess RewriteRule

У меня установлен WordPress в моем корневом каталоге, для которого существует RewriteRule.

Мне нужно защитить паролем подпапку («синюю»), поэтому я установил htaccess в этой папке как таковой.

Проблема в том, что root htaccess RewriteRule применяется к «синему», и поэтому я получаю 404 на основном сайте WordPress (вместо того, чтобы открывать диалоговое окно пароля для подпапки).

Вот корневой htaccess:

RewriteEngine on

<Files 403.shtml>
order allow,deny
allow from all
</Files>     

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Я попытался вставить это как вторую строку, но безрезультатно:

RewriteRule ^(blue)($|/) - [L]

Также попытался вставить это перед index.php RewriteRule:

RewriteCond %{REQUEST_URI} !^/blue/

Это тоже не сработало.

Также вставил это в подпапку htaccess, что тоже не сработало:

<IfModule mod_rewrite.c> RewriteEngine off </IfModule>

Любые идеи?

Попробуйте сбросить ведущую / из RewriteCond

RewriteCond %{REQUEST_URI} !^blue/

РЕДАКТИРОВАТЬ: Это должен работать без RewriteCond, поскольку первые два условия должны охватывать его, если вы не делаете больше перезаписей в этом каталоге или что-то в этом роде.

Вы используете настраиваемые страницы ошибок? Что-то меняет Request_URI, так что он больше не соответствует ни одному из условий.

Если вы не на общем хосте или если ваш хост его поддерживает, попробуйте настроить переписать журнал это расскажет вам, что именно происходит.