いくつかの特定のタスクを含む外部リダイレクトを生成しようとしています。
- URL に特定のクエリ文字列値が見つかった場合は、リダイレクトします。
- リダイレクトされた場合は、クエリ文字列パラメーター名の 1 つを置き換えますが、その値は置き換えません。
- #1がfalseの場合、書き換えを無視して続行します
例: http://foobar.com/?a=123&b=456&c=blahという URL があります。
まず、パラメータ c = の場合、 http://barfoo.com/blah
にリダイレクトします。
次に、パラメーターで置き換えa
てx
、最終的な URL がhttp://barfoo.com/?x=123&b=456&c=blahになるようにします。
以下は、 http://mod-rewrite-cheatsheet.com/とmod_rewrite の隠し機能を調査した後の私の最良の推測です。
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.foobar\.com$ [NC]
RewriteCond %{QUERY_STRING} ^a=(.*)&b=(.*)&c=blah$ [NC]
RewriteRule ^(.*)$ http://barfoo.com/?x=%1&b=%2&c=blah [NC,L,QSA,R=301]
ただし、URL は置換ではなく、クエリ文字列を追加しています。
にリダイレクトされますhttp://barfoo.com/?x=123&b=456&c=blah&a=123&b=456&c=blah