0

嘿伙计们,我在让我的 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]

不幸的是,由于某种原因我无法让它工作?

4

1 回答 1

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]

您也不需要.在目标网址中转义点,只需在匹配模式中。请注意,如果您决定使用目标 urlCampID而不是CampId,则需要设置另一个条件:

RewriteCond %{REQUEST_URI} !^/landing/external-marketing/direct-mail/

避免无限重定向作为目标CampID将匹配您的 RewriteCond 规则...

于 2012-10-27T00:35:22.263 回答