졸곰의 꾸불탕세상 Always burn, never freeze

28Sep/0614

.htaccess를 이용해 서브 도메인 홈페이지 만들기

http://test.spbear.com과 같이 서브 도메인에 태터가 아닌 다른 홈페이지를 만들어 주려면 아파치에서 VirtualHost 세팅을 해주면 됩니다만 호스팅을 받는 입장에서 VirtualHost 추가는 쉬운 일이 아닙니다. 태터툴즈의 경우는 다중 사용자 모드에서 .htaccess파일을 수정하여 서브 도메인을 줄 수 있는 것을 봐서 태터 툴즈 분양이 아니라 서브 도메인으로 다른 홈페이지를 운영하는 것을 해보고 싶어서 찾아봤습니다.

방법 찾다가 헤맨 부분이 mod_rewrite의 룰의 재귀적 호출로 인해서 무한 반복하여 Internal Error가 발생해서 삽질 좀 했습니다. 좀 찾아보니 여기서 답을 찾았습니다.

아래의 예제는 자신의 홈 디렉토리의 .htaccess파일로 http://test.spbear.com을 자신의 홈 디렉토리의 /test 디렉토리와 매핑하는 것을 예제로 삼았습니다.

[CODE]
RewriteEngine On
RewriteBase /
RewriteCond $1 !^(test)/
RewriteCond %{HTTP_HOST} ^test\.spbear\.com [NC]
RewriteRule ^(.*)$ /test/$1 [L]
[/CODE]

태터 쓰시는 분이시라면 잘 보셔서 앞부분에 RewriteCond 두줄과 RewriteRule 한줄을 추가하시면 됩니다.

Comments (14) Trackbacks (0)
  1. 이거 멋진걸요. 바로 한번 테스트 해봐야 겠네요 ^^ 좋은팁 감사드립니다 ;)

  2. 좋은 팁을 알려주셔서 이렇게 글 남깁니다.
    아…. 그런데요, 혹시 테터툴스 공지페이지를 그렇게 바꿔 사용하려면 어떻게 설정해야 하나요?
    버젼은 1.1.0.2입니다.

    *예제)
    http://abcdef.com/notice/777 를.. http://ok.abcdef.com/ 로..

  3. [NC] [R] [L] 이런건 무슨 뜻인가요?
    그리구 http://www.abc.com/를 입력 받으면
    http://www.abc.com/test/로 자동으로 이동 하려고 하면

    RewriteEngine on
    RewriteCond $1 !^(test)/
    RewriteCond %{HTTP_HOST} ^(www\.)?([^.]+)\.(com)
    RewriteRule (.*) /%2/$1 [L]

    이런식으로 하면 되나요?
    저위 $1이랑 %2는 무엇을 가리키는 건가요?

    • .htacess와 관련해서는 아파치 문서에 mod_rewrite부분을 보셔야 합니다.
      저도 제대로 공부하고 쓰는게 아니라서 정확한 이해는 부족합니다.
      답변 제대로 못해드리는 점 양해 부탁드립니다.

  4. 저도 졸곰님처럼 mail서브도메인을 달고 들어오는것은 /mail 디렉토리로 포워딩하려고 했더니.. 호스팅업체에서 주는 myadmin 서브 도메인하고 충돌하는지 그쪽으로 계속 넘어가더군요 -_- 열심히 삽질중입니다만.. 좋은 정보 감사드립니다~

  5. 저도 htacess 재귀 호출때문에 삽질 무지했었는데 우연찮게 이 블로그를 발견했네요. 덕분에 문제 해결했습니다. 감사합니다. 좋은정보 블로그에 퍼가도 되지요^^?


Leave a comment

(required)

No trackbacks yet.