2017-02-13 121 views
0

我想修改我的.htaccess文件有以下规则:如果URL中包含一个src = website.com并具有参数城市= someCityHere和国家= StateHere去多重定向条件

这个URL传递城市和国家提供的

OR

如果URL中包含的src = website.com和有拉链= zipCodeHere去这个网址传递邮政编码提供

,或者如果没有按URL” t包含src = website.com重定向到thisWebsite.com

例如链接将看起来像这样: www.mywebsite.com/?src=website.com &城市= [城市] &状态= [状态]

或 www.mywebsite的.com /?SRC = website.com &拉链= [拉链]

EDIT

下面是是我有逻辑,但它现在给出了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] 
+0

'%{QUERY_STRING}'不包含问号。几年前我回答了一个类似的问题,请参阅http://stackoverflow.com/q/14307333/1741542 –

回答

0

您可以使用下面的规则分开来重定向/path/?src=website.com &城市= foo的&状态=酒吧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,你可以写一个类似的规则,只需调整模式和目标。

+0

我已经更新了我的代码,请参阅上面的编辑;但是,现在我得到了500错误。我想我在语法上做错了什么? – unknwnlttr