【问题标题】:multiple redirect conditions with multiple parameters具有多个参数的多个重定向条件
【发布时间】:2017-07-01 01:47:12
【问题描述】:

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

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

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

或者如果 url 不包含 src=website.com 重定向到 thisWebsite.com

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

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

编辑

这是我的逻辑,但它现在给出了 500 错误。注意城市和州的值需要在重定向 url 中用下划线分隔

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]

【问题讨论】:

标签: .htaccess redirect


【解决方案1】:

您可以使用以下规则将 /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]

而对于第二个url,你可以写一个类似的规则,只是调整模式和目标。

【讨论】:

  • 我已经根据您的示例更新了我的代码,请参阅上面的编辑;但是,现在我收到 500 错误。我想我在语法上做错了什么?
猜你喜欢
  • 2014-01-25
  • 1970-01-01
  • 1970-01-01
  • 2013-04-14
  • 1970-01-01
  • 2015-07-09
  • 2011-06-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多