2009-02-09 3 views
1

mod_rewrite를 사용하여 다른 위치로 리디렉션하려는 하위 도메인이 있습니다. 예를 들면 :CNAME 하위 도메인 다시 쓰기

subdomain.example.com -> www.example.com/subdomain

내가 비록 브라우저로 리디렉션을 보내지 않으

(그래서 페이지를 알지 못한다는 다릅니다) .

BTW subdomain.example.com에는 example.com을 가리키는 CNAME 레코드가 있습니다.

편집

또 다른 예를 들어, 단지 명확히한다. 매우 간단합니다 : 브라우저에 http://x.abc.com을 입력하면 Apache는 http://www.abc.com/x의 내용을 반환합니다.

답변

1

Gumbo가 위에서 언급 한 것 외에도 Apache의 VirtualDocumentRoot 문을 사용하여 동적으로 URL을 디스크의 동적 위치에 매핑 할 수 있습니다. URL의 일부를 사용하여 디스크에 경로를 만들 수 있습니다. 자세한 내용은이 링크를 체크 아웃 :

http://httpd.apache.org/docs/2.2/mod/mod_vhost_alias.html

예 : 나는 위의 예에 따라,하지만 내가 원하는 것은 매우 간단 확실하지 않다
URL = http://sub.example.com/dir/page.html
Server Path = /var/www/site.com/htdocs/sub/dir/page.html
VirtualDocumentRoot = /var/www/%-2.0.%-1.0/htdocs/%-3/

3

두 도메인이 같은 디렉토리를 공유하는 경우, 당신은 내부 요청 재 작성이 작업을 수행 할 수 있습니다 : 질문이 명확하게 한 후

RewriteCond %{HTTP_HOST} ^([^.]+)\.example\.com$ 
RewriteRule !^subdomain/ subdomain%{REQUEST_URI} 

:이 사람은 나를 위해 작동 :

RewriteCond %{HTTP_HOST} ^([^.]+)\.example\.com$ 
RewriteCond %1.%{THE_REQUEST} ^([^.]+)\.[A-Z]+\ (/[^\ ]*) 
RewriteCond %{DOCUMENT_ROOT}$1 !-d 
RewriteRule ^([^/]+)? %1%2 

그러나 Brandon이 무엇을 말하는지 함께하는 것이 좋습니다.

+0

: 만약 http://x.abc.com이 브라우저에 입력되면 Apache는 http://www.abc.com/x의 내용을 반환합니다. 감사! –

0
RewriteCond %{HTTP_HOST} ^([^.]+)\.abc\.com$ 
RewriteRule ^(.*)$  http://www.abc.com/%1$1 [R=301] 
관련 문제