使用mod_rewrite重定向查询字符串

时间:2012-10-11 16:49:59

标签: mod-rewrite query-string

我想使用mod_rewrite来更改旧网址。例如,我想要

http://www.example.com/lyrics?id=393

要改为

http://www.example.com/lyrics/393

我尝试了以下内容:

RewriteRule ^lyrics\.aspx?$  http://www.example.com/lyrics/ [QSA,L]

但输出

http://www.example.com/lyrics/?id=393

谢谢, AB

2 个答案:

答案 0 :(得分:1)

尝试:

RewriteRule ^/?lyrics/([0-9]+)/? /lyrics.aspx?id=$1 [L]

然后重定向旧网址:

RewriteCond %{THE_REQUEST} ^(GET|POST|HEAD)\ /lyrics\.aspx\?id=([0-9]+)
RewriteRule ^ /lyrics/%2? [L,R=301]

答案 1 :(得分:-1)

我遇到了以下网站: http://forums.digitalpoint.com/showthread.php?t=16014

读完之后,这才最终为我效劳。

RewriteCond %{QUERY_STRING} ^id=(.*)$
RewriteRule ^lyrics\.aspx$ /lyrics/%1/? [R=301,L]

现在,而不是像这样的网址:

http://www.example.com/lyrics?id=950

我现在的网址看起来像这样:

http://www.example.com/lyrics/950/.