example.com/a=process&b=5&b_id=5
我怎样才能将其重定向到
example.com/a=process&b_id=5
所以我可以为所有传入的 url 删除 b=5 。但是 "a" 、 "b" 和 "b_id" 可变的不是静态的。我怎样才能做到这一点?
example.com/a=process&b=5&b_id=5
我怎样才能将其重定向到
example.com/a=process&b_id=5
所以我可以为所有传入的 url 删除 b=5 。但是 "a" 、 "b" 和 "b_id" 可变的不是静态的。我怎样才能做到这一点?
如果要进行内部重定向,请使用以下代码:
RewriteEngine On
# The query variable b is comming first.
RewriteCond %{QUERY_STRING} ^b=[0-9]*&(.*)$
RewriteRule ^(.*)$ %2?%1 [L,NS]
# The query variable b is comming in middle.
RewriteCond %{QUERY_STRING} ^(.*)&b=[0-9]*&(.*)$
RewriteRule ^(.*)$ %3?%1&%2 [L,NS]
# The query variable b is comming last.
RewriteCond %{QUERY_STRING} ^(.*)&b=[0-9]*$
RewriteRule ^(.*)$ %2?%1 [L,NS]
然后只需打印print_r($_GET);
查询变量b
将不在数组中。
如果要进行外部重定向,请使用以下代码:
RewriteEngine On
# The query variable b is comming first.
RewriteCond %{QUERY_STRING} ^b=[0-9]*&(.*)$
RewriteRule ^.*$ %{REQUEST_URI}?%1 [R,L,NS]
# The query variable b is comming in middle.
RewriteCond %{QUERY_STRING} ^(.*)&b=[0-9]*&(.*)$
RewriteRule ^.*$ %{REQUEST_URI}?%1&%2 [R,L,NS]
# The query variable b is comming last.
RewriteCond %{QUERY_STRING} ^(.*)&b=[0-9]*$
RewriteRule ^.*$ %{REQUEST_URI}?%1 [R,L,NS]
查看http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html以了解 R、L、NS 等。