Wordpressがインストールされているルートのサブディレクトリで基本的な.htaccess認証を使用しようとしています。問題はこの質問と同じです。Wordpressがパーマリンクに使用するルート.htaccessファイルは、認証が必要なサブディレクトリにある.htaccessファイルではうまく機能しません。
ただし、解決策は機能せず、機能したとしても、その解決策を使用することはできません。これは、Wordpressのhtaccess生成が、そのセクションに入力したものをすべて上書きするためです。
それが生成するものは次のとおりです。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
そして、私がそのRewriteCondリストに固執したいのは
RewriteCond %{REQUEST_URI} !(^/admin(/.*)?$)
http://www.example.com/adminに移動するには、そのディレクトリにある.htaccessファイルを使用してユーザーを認証する必要があります。例えば:
AuthName "Admin Area"
AuthType Basic
AuthUserFile "/home/.htpasswd"
AuthGroupFile "/home/.htgroups"
require valid-user
http://www.example.com/anywhereelseに移動すると、index.phpにリダイレクトされます。
現状では、ここに示されているRewriteCondを機能させることすらできません。require valid-user
admin .htaccessファイルから行を削除しない限り、/adminディレクトリに移動すると常に404ページが表示されます。注意すべき点の1つは、その404ページでは、応答にWWW-Authenticateヘッダーがまだ含まれていることです。
したがって、主な質問は次のとおりです。
- どうすればこれを機能させることができますか?
- なぜそのままでは動かないのですか?/ adminディレクトリを除外する必要があるのはなぜですか?