【问题标题】:RewriteRule after RedirectPermanent adds query stringRedirectPermanent 添加查询字符串后的 RewriteRule
【发布时间】:2014-03-14 07:46:17
【问题描述】:

我正在使用这个重写规则,效果很好

RewriteRule ^(.*)-S\.html\??(.*)$ /index.php?mod=home&action=stadt&stadt=$1&$2 [QSA]

它将 /Albersdorf-Holst-S.html 之类的 URL 指向它们的 PHP URL 参数。

现在,我需要重命名其中的一些名称,这就是为什么我要设置 RedirectPermanents。例如,喜欢这个:

RedirectPermanent /Albersdorf-Holst-S.html http://www.gruppenunterkuenfte.de/Albersdorf-Holstein--S.html

我希望,当将 RedirectPermanent 放在 RewriteRule 前面时,它将首先执行,然后将 RewriteRule 应用于结果。

但是会发生什么,地址栏中的 URL 在重定向之后读取:

http://www.gruppenunterkuenfte.de/Albersdorf-Holstein--S.html?mod=home&action=stadt&stadt=Albersdorf-Holst&

为什么要添加查询字符串?为什么只有在我首先重定向时才会发生这种情况。

【问题讨论】:

    标签: php apache .htaccess mod-rewrite redirect


    【解决方案1】:

    使用RewriteRule ... [L,R=301] 代替RedirectPermanent 有帮助:

    RewriteRule ^Albersdorf-Holst-S.html http://www.gruppenunterkuenfte.de/Albersdorf-Holstein--S.html [L,R=301]
    

    【讨论】:

      猜你喜欢
      • 2019-01-02
      • 1970-01-01
      • 1970-01-01
      • 2021-02-17
      • 2018-07-25
      • 2013-12-21
      • 2014-08-01
      • 1970-01-01
      • 2021-05-15
      相关资源
      最近更新 更多