1

Wordpressが壊れていて、誤って404メッセージを送信していた高度な機能(パスワード保護など)があったため、 Wordpressがと/exampleをいじるのをブロックしようとしています。/example2

これが私の.htaccessです:

DirectoryIndex index.html index.php parking-page.html

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_URI} !^/(example|example/.*|example2|example2/.*).*$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ./ /index.php [L]
</IfModule>

# END WordPress

これは、これらのフォルダーからWordpressをブロックするように機能しますが、Wordpressは、それらが含まれていない限り、不正なURLを検出しなくなり/ました。たとえば、Wordpressは次のものをキャッチします。

mydomain.com/something/
mydomain.com/something/anything
mydomain.com/something/anything.html

しかし、それはキャッチされません

mydomain.com/something
mydomain.com/something.html

mydomain.com/something%{REQUEST_URI}行がない場合に通常は機能する有効なWPページであっても)

後者のタイプのURLには、サーバー404メッセージが与えられます。これらの2つのディレクトリ以外のすべてでWordpressをループ状態に保つにはどうすればよいですか?

4

1 に答える 1

0

私は解決策を発見しました(hat-tip)。問題のディレクトリがWebDAVを使用していることを除いて、この質問とまったく同じ問題ですが、私の問題は、ディレクトリがパスワード保護を使用していることでした。

本質的に、デフォルトのWordPressルールはそのまま機能するはずですが、フォルダーがパスワードで保護されていると、ルールは破られます。-fファイル( )またはディレクトリ()としてそれをキャッチする必要があるこれらのルールは-d失敗します:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

パスワードで保護されたディレクトリがファイルまたはディレクトリとしてキャッチされませんでした。これは、パスワードプロンプトでスタックしたためです。また、送信するエラーページがありませんでした。したがって、解決策はエラー処理を設定することです。

ErrorDocument 401 /err.txt
ErrorDocument 403 /err.txt

これらの2行をすべてのWordPressのものの上に置いて、を作成するだけ/err.txtです。そうすれば、ファイルに到達でき、デフォルトのWPコードは美しく機能します。

于 2013-08-09T23:38:17.663 に答える