2017-08-22 18 views
0

私はので、いくつかのロシアのスパマーのIISでの書き換え規則を作成したが、ルールが検索するために2つの部分の間のスペースを正常に動作していないようだと、私はこの書き換えルールスペース

<rule name="Russian Referral Spam" stopProcessing="true"> 
<match url=".*" /> 
<conditions> 
    <add input="{HTTP_USER_AGENT}" pattern="Windows+2002|Windows+2003|Windows+2004|Windows+2005|Windows+2006|Windows+2007|Windows+2009" /> 
</conditions> 
<action type="Redirect" url="https://stackoverflow.com" redirectType="Permanent" /> 
</rule> 
を克服するためにどのように思っていました

Windows 2002|Windows 2004... 

、それはユーザエージェントでWindowsとの誰にピックアップし、それらをリダイレクトします:

前に、私はWindowsと偽のバージョンの間にスペースを含めることはありません。バックスラッシュでもルールに+を追加すると、ロシアのスパマーには影響しません。上記のルールを変更して 'Windows 2002 | Windows 2004 | Windows 2005 | Windows 2006 ...]を検索するにはどうすればいいですか?%20を追加できるURLにある場合は

ロシアのスパムユーザーエージェント:

Mozilla/7.0 (compatible; MSIE2.00; Windows 2005) 
Mozilla/8.0 (compatible; MSIE3.00; Windows 2006) 
Mozilla/6.0 (compatible; MSIE7.00; Windows 2008) 
Mozilla/4.0 (compatible; MSIE4.00; Windows 2005) 

私は、そう何のMOD-書き換えルールはApacheが、IISをしてください使用していないわけではありません。事前に

おかげ

UPDATE:専門家の所に

それは、Windows \ 2006またはWindows \のS2006を試してみてくださいと言います。これらを試してみますが、私はスパマーが100%回答を得るために戻るのを待っていますが、IIS内でルールをテストできるので、私も試してみます。

答えて

0

あなたは正しいと思います。正規表現のスペースには\または\sを使用できます。あなたのルールは、次のようなものになります。

<rule name="Russian Referral Spam" enabled="true" stopProcessing="true"> 
    <match url=".*" /> 
    <conditions> 
     <add input="{HTTP_USER_AGENT}" pattern="Windows\s(2005|2008)" /> 
    </conditions> 
    <action type="Redirect" url="https://stackoverflow.com" redirectType="Permanent" /> 
</rule>