多部分htaccess重定向

时间:2012-10-27 00:04:07

标签: .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=
RewriteRule (\w{2})(\w{5})$ http://DEV-www\.domain\.com/landing/external-marketing/direct-mail/$1?CampId=$1$2 [R=301,L]

不幸的是,由于某些原因我不能让它工作?

1 个答案:

答案 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规则...