重写规则以追加

时间:2015-11-25 21:12:22

标签: regex apache mod-rewrite url-rewriting url-rewrite-module

我目前正在制作重写规则,我需要在重定向的网址中附加某些文字。

我要在浏览器中输入的网址是

http://testwebsite.com/search/?q=SEARCH_STRING

我希望将其重定向到

http://testwebsite.com/search/SEARCH_STRING/

基本上SEARCH_STRING需要从?=的前面取出并放在/ search /

之后

我目前的规则是出现故障:

RewriteRule ^.*\/search\/\?q=(.*) /#!/search/$1/ [R=301,L,NC,NE]

知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

您需要在RewriteCond中捕获查询字符串,它不是您的RewriteRule隐式匹配的字符串的一部分

RewriteCond %{QUERY_STRING} ^q=(.+)
RewriteRule ^/search/$ /search/%1? [R=301,L,NC,NE]

尾随?删除现有的查询字符串。