.htaccess 多部分访问重定向
嘿,伙计们,让我的htaccess正确重定向有点困难,我希望能得到一些帮助 我希望.htaccess 多部分访问重定向,.htaccess,redirect,http-redirect,.htaccess,Redirect,Http Redirect,嘿,伙计们,让我的htaccess正确重定向有点困难,我希望能得到一些帮助 我希望DEV domain.com?CampID=AB12345重定向到 http://DEV-www.domain.com/landing/external-marketing/direct-mail/AB?CampId=AB12345 RewriteCond %{HTTP_HOST} ^DEV-(www\.)?domain\.com [NC] RewriteCond %{QUERY_STRING} ^CampID=
DEV domain.com?CampID=AB12345
重定向到
http://DEV-www.domain.com/landing/external-marketing/direct-mail/AB?CampId=AB12345
RewriteCond %{HTTP_HOST} ^DEV-(www\.)?domain\.com [NC]
RewriteCond %{QUERY_STRING} ^CampID=
RewriteRule (\w{2})(\w{5})$ http://DEV-www\.domain\.com/landing/external-marketing/direct-mail/$1?CampId=$1$2 [R=301,L]
不幸的是,由于某种原因,我无法让它工作?因为重写规则匹配是针对url路径的,而不是查询字符串。试试这个:
RewriteCond %{HTTP_HOST} ^DEV-(www\.)?domain\.com [NC]
RewriteCond %{QUERY_STRING} ^CampID=(\w{2})(\w{5})
RewriteRule .* http://DEV-www.domain.com/landing/external-marketing/direct-mail/%1?CampId=%1%2 [R=301,L]
此外,您不需要在目标url中转义点
,只需在匹配模式中转义。请注意,如果您决定使用目标urlCampID
而不是CampID
,则需要设置另一个条件:
RewriteCond %{REQUEST_URI} !^/landing/external-marketing/direct-mail/
为了避免无限重定向,因为带有
CampID
的目标将匹配您的RewriteCond规则…实际上,我们可以使用^(?i:CampID)=(\w{2})(\w{5})
对匹配进行不敏感的重写,域必须是匹配的一部分,因此我不确定是否可以合并重写条件=(