多个URL参数的htaccess重定向规则



我需要使用htaccess 获得重定向

来源:http://example.com/go/zaym?source=`PARAM1`&keyword=`PARAM2',但如果没有URL参数,我还需要使用空参数进行重定向

:另一个域http://example2.com/sub_id=PARAM`&sub_id2=PARAM2

因此,我需要将值source移动到sub_id,并将值keyword移动到sub_id2

我试着这么做,但不起作用:

RewriteCond %{QUERY_STRING} ^source=([^&]+)&keyword=([^&]+)$
RewriteRule ^go/zaym http://example2.com/sub_id=%1&sub_id2=%2 [R,L]

EDIT(更通用的方法(: 根据OP的评论,使用更通用的方式,可以尝试以下操作,其中没有keywordsource字符串的硬编码,然后尝试以下操作。

只有查询字符串条件检查:

RewriteEngine ON
RewriteCond %{QUERY_STRING} ^[w-]+=(.*)(?!=&)$ [NC]
RewriteRule ^(.*)$ http://example2.com%{REQUEST_URI}?sub_id=%1 [NE,L]
RewriteCond %{QUERY_STRING} ^[w-]+=([^&]*)&[w-]+=(.*)$ [NC]
RewriteRule ^(.*)$ http://example2.com%{REQUEST_URI}?sub_id=%1&sub_id2=%2 [NE,L]
RewriteCond %{QUERY_STRING} ^$
RewriteCond %{REQUEST_URI} ^/go/zaym/?$ [NC]
RewriteRule ^ http://example2.com%{REQUEST_URI} [L]

具有URI+查询字符串条件:

RewriteEngine ON
RewriteCond %{QUERY_STRING} ^[w-]+=(.*)(?!=&)$ [NC]
RewriteCond %{REQUEST_URI} ^/go/zaym/?$ [NC]
RewriteRule ^(.*)$ http://example2.com%{REQUEST_URI}?sub_id=%1 [NE,L]
RewriteCond %{REQUEST_URI} ^/go/zaym/?$ [NC]
RewriteCond %{QUERY_STRING} ^[w-]+=([^&]*)&[w-]+=(.*)$ [NC]
RewriteRule ^(.*)$ http://example2.com%{REQUEST_URI}?sub_id=%1&sub_id2=%2 [NE,L]

RewriteCond %{QUERY_STRING} ^$
RewriteCond %{REQUEST_URI} ^/go/zaym/?$ [NC]
RewriteRule ^ http://example2.com%{REQUEST_URI} [L]

最新更新