0

example.com/a=process&b=5&b_id=5

これをリダイレクトするにはどうすればよいですか

example.com/a=process&b_id=5 

したがって、すべての着信 URL に対して b=5 を削除できます。ただし、「a」、「b」、および「b_id」は静的ではなく変更可能です。これどうやってするの?

4

1 に答える 1

0

内部リダイレクトを行う場合は、次のコードを使用します。

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]

R、L、NS などについては、http://httpd.apache.org/docs/2.2/mod/mod_rewrite.htmlを参照してください。

于 2012-12-03T13:01:03.817 に答える