2012-10-15 4 views
0

의 첫 번째 두 문자를 자릅니다 여기 까다로운 사람이 있습니다.하지만 포워딩을 위해 PHP 컨트롤러 파일의 필요성을 우회 할 수 있다고 믿습니다. 가 더 다음 순서가없는 경우 나는 문제는 두 번째 리디렉션 인이.htaccess는 GET에서 전달 경로

#example.com 
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com [NC] 
RewriteRule ^$ http://www\.example2\.com/?CampID=dm/DMdefault [R=301,L] 

같은 그 것 경로, 내가 example.com/을 히트 URL을 가지고있다. 첫 번째 두 개 (영숫자)를 전달 URL의 한 부분으로, 다음 다섯 번째 부분을 두 번째 부분으로 분할하려면이 방법이 유용할까요?

RewriteMap lc int:tolower 
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com [NC] 
RewriteRule ^(\w{2})(\w{5})$ http://www\.example2\.com/landing/external-marketing/direct-mail/${lc:$1}?CampId=${lc:$1$2} [R=301,L] 

*는이 경우를 정상화하고 http://example.com/BA025JDhttp://www.example2.com/landing/external-marketing/direct-mail/ba?CampId=ba025jd 정확한 전달해야 하는가?

답변

1

htaccess 파일 내에 RewriteMap 지시어를 사용할 수 없으므로 서버 또는 vhost config에 맵을 정의해야합니다. 불행히도, 아파치는 당신의주의를 끌기를 선택하지 않습니다. 정의되지 않은 맵을 사용하면 아무 것도하지 않습니다. 그지도가 정의되면

그러나, 규칙은 나를 위해 작동 :

LC지도 아파치의 응답이 정의

GET /A1b2C3d HTTP/1.1 
Host: example.com 

내 요청

HTTP/1.1 301 Moved Permanently 
Date: Mon, 15 Oct 2012 18:44:37 GMT 
Server: Apache 
Location: http://www.example2.com/landing/external-marketing/direct-mail/a1?CampId=a1b2c3d 
Content-Length: 349 
Content-Type: text/html; charset=iso-8859-1 
+0

굉장합니다, 실제로는 httpd.conf에 있지만 그걸 t에 버렸습니다. 여기 모든 사람들이 별칭이 무엇인지 알았습니다.) 감사합니다. Jon, 나를 확인해 주어야 할 의무가 있습니다. – ehime

관련 문제