嘿伙计们,让我的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=
RewriteRule (\w{2})(\w{5})$ http://DEV-www\.domain\.com/landing/external-marketing/direct-mail/$1?CampId=$1$2 [R=301,L]
不幸的是,由于某些原因我不能让它工作?
答案 0 :(得分:1)
因为RewriteRule匹配是针对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]
您也不需要在目标网址中转义点.
,只能在匹配的模式中使用。请注意,如果您决定制作目标网址CampID
而不是CampId
,则需要提出其他条件:
RewriteCond %{REQUEST_URI} !^/landing/external-marketing/direct-mail/
避免无限重定向,因为CampID
的目标符合您的RewriteCond规则...