如何用.htaccess将带特定查询串的恶意URL 301重定向到首页?
解决被注入恶意URL的301重定向问题
你当前的规则失效是因为正则匹配条件写错了:原规则^itemywdy$要求查询字符串完全等于itemywdy,但实际恶意URL的查询字符串是itemywdy开头,后面跟着随机数字和.html后缀,根本匹配不上。
把.htaccess规则改成下面这样,就能实现所有这类恶意URL的301永久重定向:
RewriteEngine On # 匹配所有以itemywdy开头、后跟随机数字和.html后缀的恶意查询字符串 RewriteCond %{QUERY_STRING} ^itemywdy\d+\.html$ RewriteRule ^(.*)$ / [QSD,R=301,L]
规则说明:
^itemywdy\d+\.html$:精准匹配恶意查询字符串的结构:^限定字符串开头必须是itemywdy\d+匹配一个或多个随机数字\.html匹配结尾的.html(.是正则特殊字符,必须加反斜杠转义)$限定字符串结尾,避免匹配到包含该前缀的正常参数
RewriteRule ^(.*)$ /:将任意路径的请求重定向到网站首页QSD:清除原查询字符串,确保重定向后的URL干净无多余参数R=301:设置永久重定向,告知搜索引擎更新索引,替换掉恶意URL的排名L:标记为最后一条规则,匹配后不再执行后续规则
如果后续发现其他类似结构的恶意URL(比如前缀变化),可以调整正则部分,比如要匹配所有以item开头、后跟任意字符加.html的查询字符串,可将正则改为^item.*\.html$,但注意不要误匹配正常业务的查询参数。
内容的提问来源于stack exchange,提问作者Joe Nyambura
相关产品推荐
相关产品推荐

