一个搜索机器人正在我的网站上扫描页面,现在有很多奇怪的获取对象。例如,?x?、?728%10%02、?%18%9B%D9%DF%05等。我不知道机器人在哪里找到了urls,但它让我的cpu冒烟,因为缓存系统不会用GET params处理urls。
我没有能力修改缓存系统,但是我想通过.htaccess将GET params的请求重定向到同一个url,而不使用GET params。但我有一些重要的不应该被重定向的对撞机。它是用于站点搜索和utm标签的?s=...。
总之,我想重定向以下urls
/some-url?x?
/some-url?728%10%02
/some-url?%18%9B%D9%DF%05其他很多人也会
/some-url但是保持这样的未被访问的urls:
/some-url?s=searh_term or
/some-url?utm_campaign=my_campaign发布于 2015-04-12 20:22:23
如果您选择了一些GET参数,那么您可以在htaccess文件中对它们进行检查,并在没有允许参数的情况下重定向所有请求。
RewriteEngine On
# check that there is indeed a query string
RewriteCond %{QUERY_STRING} ^.+$
# check that it doesn't start with one of allowed parameters
RewriteCond %{QUERY_STRING} !^(utm_campaign|s|other|parameters|list)= [NC]
RewriteRule ^(.*)$ /$1? [R=301,L]https://stackoverflow.com/questions/29593901
复制相似问题