0

ルートの.htaccessファイルには、次のWordpressコードがあります。

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]

Wordpressファイルは「wordpress」ディレクトリにありますが、ドメインルートに対してリライトが表示されるため、標準コードとは少し異なります。たとえば、ブログ投稿はsite.com/this-is-a-blog-post.phpと呼ばれ、書き換えは機能します。

これは、htpasswdを使用してサイト上のディレクトリを保護する場合を除いてうまく機能します。次のコードを任意のディレクトリの.htaccessファイルに追加すると、そのディレクトリを参照しようとすると404が表示されます。

AuthName "Private"
AuthUserFile "/home/passwd"
AuthType Basic
require valid-user

このコードは、Wordpressの書き換えコードの最後の行がコメントアウトされている場合は正しく機能しますが、Wordpressコードがそのままの状態で、パスワードで保護されたディレクトリは404になります。

So I have a conflict between the two .htaccess files somehow. I have tried writing a bunch of RewriteCond's to try and exclude the subdirectory with the password applied but can't nail it.

4

1 に答える 1

1

マーフィーの法則、質問を投稿した後、うまくいきました。

Wordpressの書き換えに必要な追加の条件は次のとおりです。

RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|#.*|\?.*|/[^.]*)$  [NC]

したがって、完全なWordpressリライトコードは次のようになります。

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|#.*|\?.*|/[^.]*)$  [NC]
RewriteRule . /wordpress/index.php [L]

今、私は私の謙虚なパイを終えに行きます。

于 2012-12-14T02:45:20.603 に答える