使用mod_rewrite重写旧URL后删除查询字符串

时间:2012-12-25 13:40:15

标签: apache .htaccess

对于我的荷兰语website,我想将一些旧网址重定向到新路径。

我想重定向这样的网址:

/playlist?artist=Bob+Marley    ->    /zoeken/Bob+Marley
/playlist?artist=Rammstein     ->    /zoeken/Rammstein

到目前为止,我想出了这个:

RewriteCond %{QUERY_STRING}  ^artist=(.*)$  [NC]
RewriteRule ^playlist        /zoeken/%1     [NC,L,R=301]

现在唯一的问题是查询字符串在重定向后不断出现:

http://watiseropderadio/zoeken/Bob+Marley?artist=Bob+Marley

如何删除此查询字符串?

1 个答案:

答案 0 :(得分:2)

最后需要?

RewriteCond %{QUERY_STRING}  ^artist=(.*)$  [NC]
RewriteRule ^playlist        /zoeken/%1?     [NC,L,R=301]
# here --------------------------------^

默认情况下,查询字符串会自动附加到规则的目标,除非您有?来构建自己的查询字符串。最后只有一个?,您正在构建一个空白查询字符串,并且在没有QSA标志的情况下不会附加现有查询字符串。