如何用htaccess移除URL中的&sa=U子串解决404错误
解决包含&sa=U参数导致的404错误问题
你的Rewrite规则无效是因为写法有误,^(.*)?&(.*)$里的?作为量词使用,导致.*贪婪匹配到最后一个&之前的内容,无法正确截取到第一个&前的有效路径。针对你遇到的路径后直接跟&sa=U这类参数的情况,用下面的规则即可解决:
RewriteEngine On # 移除路径中第一个&及后面的所有内容,301永久重定向 RewriteRule ^(.*?)& /$1 [NC,R=301,L]
规则说明:
^(.*?)&:.*?是非贪婪匹配,会找到URL路径中第一个&的位置,捕获&之前的所有有效路径内容/$1:将请求重定向到捕获的有效路径NC:忽略大小写匹配R=301:标记为永久重定向,告诉搜索引擎更新索引L:处理完这条规则后停止后续规则执行
用你提供的示例测试:
原URL:https://www.theidioms.com/flash-in-the-pan/&sa=U&ved=2ahUKEwjdmOC119r9AhUM-yoKHT5KAOkQFnoECAEQAg&usg=AOvVaw3vBr3HWgyQ6ny3dHECBgCL
重定向后会正确指向:https://www.theidioms.com/flash-in-the-pan/
内容的提问来源于stack exchange,提问作者Juniper Scott
相关产品推荐
相关产品推荐

