重定向不需要的 GET 参数
Redirect for unwanted GET params
一个搜索机器人正在扫描我网站上的页面,其中包含许多奇怪的 GET 参数。例如 ?x?
、?728%10%02
、?%18%9B%D9%DF%05
等。我不知道机器人在哪里发现 urls 但它让我的 cpu 抽烟,因为缓存系统不处理 urls 与 GET 参数。
我无法修改缓存系统,但我想通过 .htaccess 将带有 GET 参数的请求重定向到相同的 url 而没有 GET 参数。但是我有一些重要的 GET 参数不应被重定向。 ?s=...
用于站点搜索和 utm 标签。
总而言之,我想重定向以下 urls
/some-url?x?
/some-url?728%10%02
/some-url?%18%9B%D9%DF%05
和很多其他人 GET 参数到
/some-url
但保持原样 url 是这样的:
/some-url?s=searh_term or
/some-url?utm_campaign=my_campaign
如果您选择了可能的 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 ^(.*)$ /? [R=301,L]
一个搜索机器人正在扫描我网站上的页面,其中包含许多奇怪的 GET 参数。例如 ?x?
、?728%10%02
、?%18%9B%D9%DF%05
等。我不知道机器人在哪里发现 urls 但它让我的 cpu 抽烟,因为缓存系统不处理 urls 与 GET 参数。
我无法修改缓存系统,但我想通过 .htaccess 将带有 GET 参数的请求重定向到相同的 url 而没有 GET 参数。但是我有一些重要的 GET 参数不应被重定向。 ?s=...
用于站点搜索和 utm 标签。
总而言之,我想重定向以下 urls
/some-url?x?
/some-url?728%10%02
/some-url?%18%9B%D9%DF%05
和很多其他人 GET 参数到
/some-url
但保持原样 url 是这样的:
/some-url?s=searh_term or
/some-url?utm_campaign=my_campaign
如果您选择了可能的 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 ^(.*)$ /? [R=301,L]