web-dev-qa-db-ja.com

HTaccessRewriteRuleからサブフォルダーを除外する方法

RewriteRuleが配置されているルートディレクトリにWordPressがインストールされています。

サブフォルダー(「青」)をパスワードで保護する必要があるので、そのフォルダーのhtaccessをそのように設定します。

問題は、ルートhtaccess RewriteRuleが「青」に適用されているため、メインWordPressサイトで(サブフォルダーのパスワードダイアログを開く代わりに)404が表示されることです。

ルート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>

私はこれを2行目として挿入しようとしましたが、役に立ちませんでした。

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

また、index.phpRewriteRuleの前にこれを挿入してみました。

RewriteCond %{REQUEST_URI} !^/blue/

それもうまくいきませんでした。

また、これをサブフォルダーのhtaccessに挿入しましたが、これも機能しませんでした。

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

何か案は?

3
amb9800

RewriteCondから先頭の/を削除してみてください

RewriteCond %{REQUEST_URI} !^blue/

編集:最初の2つの条件は、そのディレクトリなどでさらに書き換えを行わない限り、RewriteCondなしで機能するはずなので、shouldで動作します。

カスタムエラーページを使用していますか?何かがRequest_URIを変更して、どの条件にも一致しなくなっています。

共有ホストを使用していない場合、またはホストが共有ホストをサポートしている場合は、 ログの書き換え を設定してみてください。これにより、何が起こっているかが正確にわかります。

1
matthew