如何防止 301 重定向中的附加参数
Posted
技术标签:
【中文标题】如何防止 301 重定向中的附加参数【英文标题】:How to prevent append parameter in 301 redirect 【发布时间】:2022-01-17 13:15:15 【问题描述】:我在 .htaacess 文件中使用此重定向命令。
Redirect 301 /old-path.html /new-path.html
它告诉我/new-path.html?page=old-path
概率,附加参数是我的 htaccess 中一些 RewriteRule 和 RewiteCond 的结果。
我不喜欢编辑我原来的 htaccess 代码。
我发现下面的命令非常接近结果。
RedirectMatch 301 /old-path.html /new-path.html?
结果是/new-path.html?
,它只有一个额外的?
【问题讨论】:
【参考方案1】:不要使用RedirectMatch
,因为它无法丢弃旧的/以前的查询字符串。
最好像这样使用RewriteRule
:
RewriteRule ^old-path\.html$ /new-path.html? [L,R=301,NC]
在目标中尾随?
将丢弃任何查询字符串。
在 Apache 2.4+ 上,您还可以使用:
RewriteRule ^old-path\.html$ /new-path.html [L,R=301,NC,QSD]
作为一个经验法则,将所有R=...
规则放在您的 .htaccess 之上,然后放在其他规则之前。这将使这些规则在其他可能修改请求 URI 或查询字符串的内部重写规则之前起作用。
【讨论】:
以上是关于如何防止 301 重定向中的附加参数的主要内容,如果未能解决你的问题,请参考以下文章
.htaccess 中的 301 重定向将旧文件路径/名称附加到新 url
301重定向后如何防止chrome从磁盘缓存中加载index.html