我正在尝试生成涉及一些特定任务的外部重定向。
- 如果在 URL 中找到特定的查询字符串值,则重定向。
- 如果重定向,请替换查询字符串参数名称之一,而不是其值。
- 如果#1 为假,则忽略重写并继续
示例:我有网址http://foobar.com/?a=123&b=456&c=blah
首先,如果参数 c = blah
,重定向到http://barfoo.com/
其次,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