我正在尝试在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
这些都不起作用...... 可能吗? 任何人都可以帮忙吗? 提前谢谢
答案 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}变量来匹配带有查询字符串的网址。