2

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-useradmin .htaccessファイルから行を削除しない限り、/adminディレクトリに移動すると常に404ページが表示されます。注意すべき点の1つは、その404ページでは、応答にWWW-Authenticateヘッダーがまだ含まれていることです。

したがって、主な質問は次のとおりです。

  1. どうすればこれを機能させることができますか?
  2. なぜそのままでは動かないのですか?/ adminディレクトリを除外する必要があるのはなぜですか?
4

1 に答える 1

3

私はここで解決策を見つけました。追加する

ErrorDocument 401 default

Wordpressが編集するセクションの外にあるルート.htaccessファイルに対して、問題が修正されたようです。しかし、それが最良の選択肢かどうかはわかりません。より良い解決策があれば、遠慮なく投稿してください。

于 2012-06-15T19:23:56.623 に答える