使用.htaccess阻止某个域,但特定页面除外

时间:2015-05-13 02:58:57

标签: .htaccess

我们的网站在www.mywedding.com上接收来自我们广告的访问。由于某些未知原因,我们也收到该网站上与我们业务无关的其他广告的虚假推介。这些其他访问正在扭曲我们的访问者跟踪统计数据并且难以解释访问者行为,因为虚假访问者在登陆主页后总是离开该网站。这些访问也会扭曲我们的Google Analytics报告。网站管理员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]

提前谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用以下规则:

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。如果是这样,则下一个条件会确保引荐来源不是您要列入白名单的三个网址之一。如果满足所有4个条件(意味着引荐来自www.mywedding.com,而不是来自列入白名单的URL),则会删除具有最终重写规则的请求。否则,URL会按原样传递。

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