2012-10-27 19 views
0

嘿傢伙我有點麻煩讓我的htaccess重定向正確,並希望得到一些幫助。Multipart 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

因爲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] 

還你不需要逃避點.目標URL,只有在匹配模式。而且要注意,如果你決定讓你的目標URL的CampID代替CampId,你需要把另外一個條件:

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

以避免無限重定向與CampID目標將匹配您的RewriteCond規則...

+0

其實我們可以用'^(?i:campid)=(\ w {2})(\ w {5})對比賽進行不敏感的重寫'該域必須是比賽的一部分,所以我我不確定我是否可以合併重寫條件=( – ehime