通过重定向htaccess追加查询字符串

时间:2016-01-16 11:48:39

标签: php string .htaccess mod-rewrite

我正在尝试在htaccess中创建一个重写cond 我正在尝试重定向

http://www.example.com/business/search-results.php?keywords=Animal+Business+Cards&go=Search

http://www.example.com/business/search results.php?keywords=Animal+Business&go=Search

或者如果可能,请从任何搜索查询中删除“+ cards”一词......

到目前为止我尝试了什么

RewriteEngine On
RewriteCond   %{QUERY_STRING}   ^Animal+Business+Cards$
RewriteRule   ^(.*)$ http://www.example.com/business/search-results.php?keywords=Animal+Business  [R=301,L]

也尝试了

RewriteCond %{QUERY_STRING}    "&go=Search" [NC]
RewriteRule (.*)  /$1? [R=301,L]

和这个

Redirect /business/search-results.php?keywords=Animal+Business+cards&go=Search http://www.example.com/business/search-results.php?keywords=Animal+Business&go=Search

这些都不起作用...... 可能吗? 任何人都可以帮忙吗? 提前谢谢

1 个答案:

答案 0 :(得分:1)

请尝试以下代码:

RewriteEngine On

RewriteCond %{QUERY_STRING} ^keywords=([^\+]+)\+([^\+]+)\+([^&]+)&go=([^&]+)$ [NC]
RewriteRule ^ %{REQUEST_URI}?keywords=%1+%2&go=%4 [NC,L,R]

另一种解决方案

RewriteEngine On

RewriteCond %{THE_REQUEST} \?keywords=([^\+]+)\+([^\+]+)\+([^&]+)&go=([^&\s]+) [NC]
RewriteRule ^ %{REQUEST_URI}?keywords=%1+%2&go=%4 [NC,L,R]

注意:Redirect指令不支持旧路径参数中的查询字符串,这就是您上次尝试失败的原因。您可以使用%{QUERY_STRING}或%{THE_REQUEST}变量来匹配带有查询字符串的网址。