2017-10-26 15 views
0

期待通りに動作していないと私は、この使用していのhtaccessのRewriteCond ORフラグは、私はワードプレスのウェブサイトを持って

私は彼らの文字列名の一部に基づいて、特定のいるUserAgentをフィルタリングしようとしています:

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/

RewriteCond %[HTTP_USER_AGENT] .*useragent3.* [NC, OR] 
RewriteCond %[HTTP_USER_AGENT] .*useragent2.* [NC, OR] 
RewriteCond %[HTTP_USER_AGENT] .*useragent1.* [NC] 
RewriteRule ^.* - [F,L] 

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

# END WordPress 

がやっだから私は500エラーを取得し、私はまたはフラグを削除すると、私は500エラーを取り除き、ウェブサイトが表示されますが、それはユーザーエージェントをフィルタリングしないことに気づいた。デフォルトはだろうとユーザエージェント名はそれらの文字列のすべてに一致することを必要とするであろうとしてORフラグが私のRewriteCondクエリにORステートメントを追加しますので、これは正常な動作です。

ORを使用すると、500エラーが発生するのはなぜですか?

答えて

1

あなたの旗に

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/

RewriteCond %[HTTP_USER_AGENT] .*useragent3.* [NC,OR] 
RewriteCond %[HTTP_USER_AGENT] .*useragent2.* [NC,OR] 
RewriteCond %[HTTP_USER_AGENT] .*useragent1.* [NC] 
RewriteRule ^.* - [F,L] 

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

# END WordPress 
を空白を削除する。これは、「どのようにあるため、空白の1時間を失う」シリーズに行く

+0

を動作するはずです。ありがとう! –

+0

私は[]の代わりに{}を使用するべきであることを発見するためにもう1時間を追加してください。doh –

関連する問題