rewriterrule在RedirectPermanent之后添加查询字符串


RewriteRule after RedirectPermanent adds query string

我使用这个重写规则,它工作得很好

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&

为什么要添加查询字符串?为什么只有当我重定向时才会出现这种情况

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

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