.htaccess 通过301重定向更改查询字符串中的单词

.htaccess 通过301重定向更改查询字符串中的单词,.htaccess,mod-rewrite,redirect,.htaccess,Mod Rewrite,Redirect,我想在下面的URL中将“流行”改为“最流行” http://www.site.com/projects?page=12&sort=popular 我认为这会奏效: RewriteRule ^projects?page=([0-9]+)&sort=popular$ http://www.site.com/projects?page=$1&sort=most-popular [L,R=301] 但它似乎没有重定向。有人能看出我做错了什么吗?我应该转义什么吗?您不能在重写规

我想在下面的URL中将“流行”改为“最流行”

http://www.site.com/projects?page=12&sort=popular
我认为这会奏效:

RewriteRule ^projects?page=([0-9]+)&sort=popular$ http://www.site.com/projects?page=$1&sort=most-popular [L,R=301]

但它似乎没有重定向。有人能看出我做错了什么吗?我应该转义什么吗?

您不能在重写规则中访问查询字符串。您需要立即捕获它:

RewriteCond %{QUERY_STRING} ^page=([0-9]+)&sort=popular$
RewriteRule ^projects$ http://www.site.com/projects?page=%1&sort=most-popular [L,R=301]

哦,好吧,我现在明白了。谢谢你!