.htaccess重写规则在RK = 0 / RS =之后删除所有内容

时间:2014-03-31 12:11:00

标签: regex apache .htaccess mod-rewrite

我的网站收到了大量不存在的网页请求。

所有请求都基于现有页面,但最后有RK=0/RS=加上随机字符串。

例如,请求是:

www.domain.com/folder/article/RK=0/RS=M9j32OWsFAC_u8I6a0xOMjYKU_Q-

但页面www.domain.com/folder/article确实存在。

我想用htaccess说:

  

如果RK=0/RS=存在,请删除

之后的所有内容

但是还没有能够让它发挥作用。

所有htaccess规则都在谈论删除查询字符串,但我猜测是因为它没有?它不是查询。

有人可以帮我理解如何做到吗?

2 个答案:

答案 0 :(得分:4)

有人发现这个烂摊子的来源。 http://xenforo.com/community/threads/server-logs-with-rk-0-rs-2-i-now-know-what-these-are.73853/

看起来实际上并非恶意,雅虎重写会创建指向不存在的网页的URL。 xenforo上描述的演示确实复制了它,以及雅虎正在制作的URL的模式:

http://r.search.yahoo.com/_ylt=A0SO810GVXBTMyYAHoxLBQx./RV=2/RE=1399899526/RO=10/RU=http%3a%2f%2fkidshealth.org%2fkid%2fhtbw%2f/RK=0/RS=y2aW.Onf1Hs6RISRJ9Hye6gXvow-

当然看起来像RV =,RE =,RU =,RK =,RS =值是同一族。只是某个地方的arg连接正在他们身边搞砸。

答案 1 :(得分:3)

您可以在root .htaccess文件中使用此规则:

RewriteEngine On

RewriteRule ^(folder/article/)RK=0/RS= /$1 [L,NC,R=301]