我需要使用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的评论,使用更通用的方式,可以尝试以下操作,其中没有keyword
或source
字符串的硬编码,然后尝试以下操作。
只有查询字符串条件检查:
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]