2015-11-07 144 views
-1

我在重写URL中的get参数时遇到了麻烦。.htaccess重写获取URL中的参数

我需要将值替换为0或在整个站点上从URL删除所有下一个请求“filter = all”。整个requst的

例子: mysite.com/?filter=all&search_text=&type=xx&pagination=10&search_page=10&cs_loc_max_input=300&cs_loc_incr_step=1&goe_location_enable=off&submit=

我已经试过:

RewriteRule ^filter=0$ filter=all&%{QUERY_STRING} [L,NC] 

OR

RewriteCond %{QUERY_STRING} ^filter=all$ 
RewriteRule ^filter=0$ ?filter=all&%{QUERY_STRING}[L,NC] 

OR

RewriteCond %{QUERY_STRING} ^(.*[&?]|)filter=(all|all2)([&?].*|)$ 
RewriteRule ^(.*)$ $1?filter=0&%{QUERY_STRING} [R=301,NC,L] 

很少WA还有更多,但没有按预期工作...请,需要帮助。 感谢

+0

你想在浏览器中显示的最终URL是什么? – anubhava

回答

1

您可以使用:

RewriteCond %{QUERY_STRING} ^(.*)filter=all(.*)$ [NC] 
RewriteRule^%{REQUEST_URI}?%1filter=0%2 [R=301,L] 

如果你尝试没有重定向重写。使用[L]而不是[R=301,L]

+0

非常感谢!它完美地工作! – Irina

+0

不客气,很高兴知道它解决了问题,您可以通过点击答案左上角的复选标记将答案标记为已接受。 – Croises