【问题标题】:How to prevent append parameter in 301 redirect如何防止 301 重定向中的附加参数
【发布时间】:2022-01-17 13:15:15
【问题描述】:

我在 .htaac​​ess 文件中使用此重定向命令。

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?,它只有一个额外的?

【问题讨论】:

    标签: .htaccess redirect mod-rewrite url-rewriting


    【解决方案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 或查询字符串的内部重写规则之前起作用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-18
      • 2023-03-04
      • 1970-01-01
      • 1970-01-01
      • 2019-05-27
      • 2016-11-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多