【问题标题】:Using .htaccess to block a domain, except for specific pages使用 .htaccess 阻止域,特定页面除外
【发布时间】:2015-05-14 08:02:39
【问题描述】:

我们的网站收到来自我们在 www.mywedding.com 上的广告的访问由于某些未知原因,我们还收到来自该网站上其他与我们业务无关的广告的虚假推荐。这些其他访问正在扭曲我们的访问者跟踪统计数据,并且难以解释访问者的行为,因为虚假访问者总是在登陆主页后离开网站。这些访问也扭曲了我们的谷歌分析报告。 www.mywedding.com 的网站管理员无法确定这是如何发生的,或者如何防止它发生。如何配置 .htaccess 以阻止虚假访问,同时允许适当的访问?具体来说,我想阻止来自 www.mywedding.com 的访问,除非访问来自以下三个 URL 中的任何一个: www.mywedding.com/vendors/maui-tradewinds-private-honeymoon-retreat-390406 或者 www.mywedding.com/vendors/maui-tradewinds-private-honeymoon-retreat-276856 或者 www.mywedding.com/honeymoons/united-states/maui-hi-us

这是用于在我的 .htaccess 上阻止指定引用者的现有代码部分:

#Block traffic from "bad" referrers
 RewriteEngine On
 RewriteBase /
 RewriteCond %{HTTP_REFERER} make-money-online\.7makemoneyonline\.com [NC,OR]
 RewriteCond %{HTTP_REFERER} 245\.semalt\.com [NC,OR]
 RewriteCond %{HTTP_REFERER} best-seo-solution\.com [NC,OR]
 RewriteCond %{HTTP_REFERER} best-seo-offer\.com [NC,OR]
 RewriteCond %{HTTP_REFERER} buttons-for-your-website\.com [NC,OR]
 RewriteCond %{HTTP_REFERER} Get-Free-Traffic-Now\.com [NC,OR]
 RewriteCond %{HTTP_REFERER} semalt\.com
 RewriteRule .* - [F]

提前谢谢你。

【问题讨论】:

    标签: .htaccess


    【解决方案1】:

    您可以使用这些规则:

    RewriteEngine On
    
    # Inspect visits from www.mywedding.com
    RewriteCond %{HTTP_REFERER} (www\.)?mywedding\.com [NC]
    
    # and drop requests NOT from any of three URLs: 
    RewriteCond %{HTTP_REFERER} !/vendors/maui-tradewinds-private-honeymoon-retreat-390406 [NC]
    RewriteCond %{HTTP_REFERER} !/vendors/maui-tradewinds-private-honeymoon-retreat-276856 [NC]
    RewriteCond %{HTTP_REFERER} !/honeymoons/united-states/maui-hi-us [NC]
    
    # Return a 403 Forbidden header which stops the request
    RewriteRule .* - [F]
    

    第一个条件检查引用者是否来自www.mywedding.com。如果是这样,则下一个条件确保引荐来源网址不是您要列入白名单的这三个 URL 之一。如果满足所有 4 个条件(意味着引荐来源网址来自 www.mywedding.com,但不是来自列入白名单的 URL),则使用最终的重写规则丢弃请求。否则,URL 按原样通过。

    请在此处试验规则:http://htaccess.madewithlove.be/

    【讨论】:

    • 感谢您提供该代码。我将它复制到您提供的链接中的 htaccess 测试仪中,当我按下“立即检查”按钮时,页面似乎刷新了,但对测试没有响应。
    • 我在我的网站上测试了代码,并没有丢弃一个请求,即使它不是来自任何“异常”URL。请指教。
    • 啊,小错字。将RewriteRule .* - [L] 更改为RewriteRule .* - [F]。 “F”表示“403 Forbidden”响应
    • 完全可以。谢谢 Drakes -- 其他“专家”告诉我,这是不可能的。
    • 很高兴能提供帮助。如果对您有帮助,请采纳答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-16
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    相关资源
    最近更新 更多