URL含异常page参数,301重定向失效求助
解决带page参数的gallery.html URL 301重定向失效问题
问题原因
你用的RedirectMatch指令仅匹配URL的路径部分(即?之前的内容),而且?在正则表达式里是特殊字符(表示前一个字符可选),所以你写的规则RedirectMatch 301 /gallery.html?page=1 /gallery.html根本没正确匹配到目标URL,自然不会生效。
正确解决方案
推荐使用mod_rewrite规则(比mod_alias的RedirectMatch更适合处理带查询字符串的重定向),在你的.htaccess文件中添加以下代码:
RewriteEngine On # 匹配所有带page数字参数的gallery.html URL RewriteCond %{QUERY_STRING} ^page=\d+$ RewriteRule ^gallery\.html$ /gallery.html? [R=301,L]
代码说明:
RewriteCond %{QUERY_STRING} ^page=\d+$:检查URL的查询字符串是否为page=任意数字(如page=1、page=2等)RewriteRule ^gallery\.html$ /gallery.html?:匹配路径为gallery.html的请求,重定向到不带查询参数的/gallery.html(末尾的?会清除原有查询字符串)R=301:标记为永久重定向(符合搜索引擎优化需求)L:表示这是最后一条规则,匹配后不再执行后续规则
注意事项
修改.htaccess后,务必清除浏览器缓存再测试——因为301重定向会被浏览器缓存,旧缓存可能导致你看不到新规则的效果。
内容的提问来源于stack exchange,提问作者David
相关产品推荐
相关产品推荐

