루트도메인과 서브도메인의 Redirect 문제 (.htaccess)

안녕하세요! 처음 알게 된 사이트네요. Stack Overflow만 사용하다가… 앞으로 자주 둘러보겠습니다 :slightly_smiling_face:

웹호스팅을 받아 최근 열심히 개인 웹사이트를 개발 중에 있는데, cdn과 비슷한 목적(저 같은 경우 프로그램의 업데이트 소스 서버로 사용할 예정입니다)으로 웹호스팅을 추가적으로 사용해야 할 상황이 되어 서브도메인을 이용하여 접근 폴더를 구분할 예정이었습니다.

(AAA.me → /main/ 폴더 (public_html 내)
cdn.AAA.me → /cdn/ 폴더 (public_html 내))

루트 도메인은 main 폴더로 Redirect 하여 cdn 폴더로는 접근할 수 없게 하고, cdn.AAA.me(cdn 서브 도메인)은 cdn 폴더로 Redirect 하여 main 폴더에 접근할 수 없게 할 생각입니다. (추가적으로 Let’s Encrypt SSL이 적용되어 있어 http://로 접근 시에도 무조건 https:// SSL 연결로만 강제할 생각입니다)

열심히 구글링도 하고 Stack Overflow에 관련 질문도 올려 .htaccess를 통해 해결할 생각이었으나 전혀 속수무책이더군요…;

본인이 작성한 .htaccess 코드 내용과 함께 질문 남겨봅니다.

RewriteEngine On

RewriteCond %{HTTP_HOST} ^cdn\.AAA\.me$ [NC]
RewriteRule ^((?!cdn/).*)$ /cdn/$1 [L,NC]

RewriteCond %{HTTP_HOST} ^(www.)?AAA.me$ [NC]
RewriteCond %{REQUEST_URI} !^/main/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /main/$1

RewriteCond %{HTTP_HOST} ^(www.)?AAA.me$ [NC]
RewriteRule ^(/)?$ main/index.html [L]

(현재 cdn.AAA.me로 접속 시 cdn 폴더로 Redirect되나, AAA.me(루트)로 접속 시 AAA.me/main 으로 표시됩니다)

환영합니다! 코드를 올려 주실떈 작은 따옴표(’) 가 아니라 백틱(`) 을 이용해주셔야 합니다.

해당 부분을 수정처리한 점 양해 부탁드립니다.

의외로 헷갈리시는 분들이 많더라고요. :s

1 Like

반갑읍니다. 제 소견으론, FQDN으로 virtualHost 설정하시는게 가장 깔끔하고 간단해 보입니다. 아래 메뉴얼 참조 하세요.

https://httpd.apache.org/docs/2.4/vhosts/examples.html