具有多个参数的多个重定向条件

时间:2017-02-13 06:30:09

标签: .htaccess redirect

我正在尝试编辑我的.htaccess文件以具有以下规则:

如果URL包含src = website.com并且有参数city = someCityHere AND state = StateHere转到此URL传递提供的城市和州

OR

如果网址包含src = website.com并且有zip = zipCodeHere,请转到此网址,传递提供的邮政编码

如果网址没有包含src = website.com重定向到此网站,则为

例如,网址将如下所示: www.mywebsite.com/?src=website.com&city=[city]&state=[state]

或 www.mywebsite.com/?src=website.com&zip=[zip]

编辑

这是我的逻辑,但它现在给出500错误。请注意,城市和州的值需要在重定向网址

中用下划线分隔
RewriteCond %{THE_REQUEST} /\?src=website\.com&city=([^&]+)&state=([^&\s]+) [NC]
RewriteRule ^ www.anotherwebsite.com/$1_$2? [L,R=301]

RewriteCond %{THE_REQUEST} /\?src=website\.com&zip=([^&]+) [NC]
RewriteRule ^ www.anotherwebsite.com/$1? [L,R=301]

RewriteCond %{THE_REQUEST} !/\?src=website\.com [NC]
RewriteRule ^ http://www.anotherwebsite.com [L, R=301]

1 个答案:

答案 0 :(得分:0)

您可以使用以下规则将 /path/?src=website.com&city=foo&state=bar 重定向到 http://example.com/foo/bar

RewriteEngine on

RewriteCond %{THE_REQUEST} /\?src=website\.com&city=([^&]+)&state=([^&\s]+) [NC]
RewriteRule ^ http://example.com/%1/%2? [L,R]

对于第二个网址,您可以编写类似的规则,只需调整模式和目标。