Rerex for Url Rewrite

时间:2015-07-25 20:27:21

标签: regex .htaccess mod-rewrite

我有这个重写

#RewriteCond %{THE_REQUEST} \ /+catalogsearch/result/\?q=([^&\ ]+)
#RewriteRule ^ /q/%1? [L,NE,R=301]
#RewriteRule ^q/(.*)$ /catalogsearch/result/?q=$1 [L,NE,QSA]

www.mysite.com/catalogsearch/result/?q=

的工作正常

但现在我改变了我的搜索方法 我的网址是

www.mysite.com/catalogsearch/result/?cat=&q=

如何更改我的重写?提前致谢

1 个答案:

答案 0 :(得分:0)

再次感谢http://htaccess.madewithlove.be,并提出你可以使用QUERY_STRING作为重写条件:

RewriteCond %{QUERY_STRING} q=(.*)
RewriteRule ^ /q/%1? [L,NE,R=301]
RewriteRule ^q/(.*)$ /catalogsearch/result/?q=$1 [L,NE,QSA]

结果:

RewriteCond %{QUERY_STRING} q=(.*)  This condition was met
RewriteRule ^ /q/%1? [L,NE,R=301]   This rule was met, the new url is:
                                    http://www.example.com/q/something&cat=123