搜索机器人正在使用许多奇怪的GET参数扫描我网站上的网页。例如?x?
,?728%10%02
,?%18%9B%D9%DF%05
等。我不知道机器人在哪里找到了网址,但它让我的cpu吸烟,因为缓存系统没有处理网址与GET参数。
我没有能力修改缓存系统,但是我希望将带有GET参数的请求重定向到同一个网址而不通过.htaccess获取GET参数。但是我有一些重要的GET参数,它们不会被重定向。它是?s=...
用于网站搜索和utm标签。
总之,我想重定向以下网址
/some-url?x?
/some-url?728%10%02
/some-url?%18%9B%D9%DF%05
以及很多其他人参加
/some-url
但保持这样的未触动的网址:
/some-url?s=searh_term or
/some-url?utm_campaign=my_campaign
答案 0 :(得分:1)
如果您有一定数量的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]