如何在IIS上阻止Semalt

时间:2014-03-05 19:05:25

标签: iis web-config spam spam-prevention

检查我的Google Analytics我从semalt.com获得了大量流量。 我知道这是一种流量垃圾邮件策略,所以我想完全阻止他们的请求并阻止它在我的流量统计数据中显示出来。

我在这里阅读http://logorrhoea.net/2014/01/how-to-block-semalt-com-referrer-traffic-using-htaccess/,在Apache上可以这样做:

# block visitors referred from semalt.com
RewriteEngine on
RewriteCond %{HTTP_REFERER} semalt\.com [NC]
RewriteRule .* - [F]

但是我需要IIS,可能是通过web.config,但是怎么做呢?

3 个答案:

答案 0 :(得分:6)

好的,在这里找到了一些东西:http://tusksoft.com/blog/posts/6/clean-up-your-google-analytics-and-help-stop-referer-spam-with-this-simple-rewrite-rule

这似乎有效:

<rewrite>
  <rules>
    <rule name="abort referer spam requests" stopProcessing="true">
      <match url=".*" />
      <conditions>
        <add input="{HTTP_REFERER}" pattern="(semalt\.com)|(buttons\-for\-website\.com)" />
      </conditions>
      <action type="AbortRequest" />
    </rule>
    <!--The rest of your rules, if you have any-->
  </rules>
</rewrite>

答案 1 :(得分:3)

试试这个,它应该有效:

       <rewrite>
            <rules>
                <rule name="RequestBlockingRule1" patternSyntax="Wildcard" stopProcessing="true">
                    <match url="*" />
                    <conditions>
                        <add input="{HTTP_REFERER}" matchType="Pattern" pattern="*.semalt.com*" 

ignoreCase="true" negate="false" />
                    </conditions>
                    <action type="AbortRequest" />
                </rule>
            </rules>
        </rewrite>

我已经测试并验证了这一点,但是对于* .semalt.com以外的推荐人网址。此代码中的密钥与您的代码不同,是引用者模式末尾的通配符,因为引用URL以&#34; /&#34;结尾。您也可以在最后用&#34; /&#34;替换通配符。虽然我认为通配符应该更好。

答案 2 :(得分:2)

以下是一个示例web.config,其中包含与您提供的配置相同的URL Rewrite配置。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="block semalt referer" patternSyntax="Wildcard" stopProcessing="true">
          <match url="*" />
          <conditions>
            <add input="{HTTP_REFERER}" pattern="*.semalt.com" />
          </conditions>
          <action type="AbortRequest" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>