.htaccess在URL中重写get参数

时间:2015-11-07 11:12:39

标签: php apache .htaccess mod-rewrite url-rewriting

我在网址中重写一个get参数时遇到了麻烦。

我需要将值替换为0或从整个网站的网址中删除所有下一个请求“filter = all”。

整个请求的示例: 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]

还有一些方法,但没有任何方法可以按预期工作......请,需要帮助。 感谢

1 个答案:

答案 0 :(得分:1)

您可以使用:

GET  /cars    ---> Check for the list of cars

POST /cars    ---> Add a car 

GET /cars/1   ---> Get a specific car details

PUT /cars/1   ---> Edit a specific car

如果您尝试重写而没有重定向。使用RewriteCond %{QUERY_STRING} ^(.*)filter=all(.*)$ [NC] RewriteRule ^ %{REQUEST_URI}?%1filter=0%2 [R=301,L] 代替[L]