묻고답하기
.htaccess 를 이용한 도메인 리다이렉션 문의
2014.08.13 03:48
초보가 질문 드립니다.
게시판을 보고 도메인 리다이렉션이나 www 이 없는 URL을 www 이 붙도록 하는 부분은 수정을 했습니다만
단순 도메인이 아닌 전체 URL을 리다이렉션을 하는 방법을 잘 몰라서 문의드립니다.
http://test.co.kr/xe/test 를 입력했을 경우
http://www.test.com/xe/test 로 리다이렉션을 시키고자 합니다.
게시판이나 인터넷을 검색해서 찾은 방법은 아래와 같을거 같은데..
/([a-zA-Z0-9_\-\/]+)/? 이 부분을 제외하면 co.kr 이 com으로 리다이렉션이 잘 되는데
/([a-zA-Z0-9_\-\/]+)/? 을 넣기만 하면 리다이렉션이 안되고 co.kr 도메인으로 그대로 보여지게 됩니다.
뭐가 문제일가요?
초보가 고수님들께 가르침을 받고자 합니다.
답변주시는 모든분들게 미리 감사합니다.
# redirect http www RewriteCond %{HTTPS} !=on RewriteCond %{HTTP_HOST} ^test\.co\.kr/([a-zA-Z0-9_\-\/]+)/?$ [NC] RewriteRule ^(.*) http://www.test.com/$1 [R=301,L] # redirect https www RewriteCond %{HTTPS} on RewriteCond %{HTTP_HOST} ^test\.co\.kr//([a-zA-Z0-9_\-\/]+)/?$ [NC] RewriteRule ^(.*) https://www.test.com/$1 [R=301,L]
댓글 4
-
HSJI
2014.08.13 12:28
-
DoS™
2014.08.13 14:10
test.co.kr ---> www.test.com 도 되고,
test.co.kr/example/ ---> www.test.com/example/ 도 되게 하고 싶은거구요...
말씀해 주신대로 해봤는데 404 오류가 발생하네요...
초보에게는 정말 어렵습니다. ㅠㅠ
-
HSJI
2014.08.13 15:17
RewriteCond %{HTTP_HOST} ^test\.com [NC]
RewriteRule ^(.*)$ http://www\.tset\.com/$1 [L,R=301,NC]일단.. .htaccess에는 문제가 없습니다.
.htaccess가 제대로 적용되고 있다면 404오류라도 주소창에서는 바뀐 주소를 표시하고 있을 겁니다.
바뀐 주소(test.com)으로 표시되고 있다면 .htaccess문제는 아니구요.
404오류는 파일 또는 디렉토리가 없거나 잘못되었을때 나오는데..
짧은 주소가 제대로 설정되지 않았거나, 모듈이름과 디렉토리명이 같으면 오류날 수 있습니다.
또한 다른 redirection과 충돌하지 않는지,
열어본페이지목록, 임시파일이 남아 있어 적용이 되지 않는지 살펴보세요.
다른 컴에서도 한번 확인해보시구요.
-
DoS™
2014.08.13 15:22
해결했습니다.
감사합니다.
RewriteCond %{HTTP_HOST} ^test\.co\.kr$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www\.test\.co\.kr$ [NC,OR]
RewriteCond %{HTTP_HOST} ^test\.com$ [NC]
RewriteRule ^(.*)$ http://www\.test\.com/xe/$1 [R=301,L]
"단순 도메인이 아닌 전체 URL을 리다이렉션" 이 말뜻이 좀 모호한데
test.co.kr ---> www.test.co.kr 도 되고,
test.co.kr/example/ ---> www.test.co.kr/example/ 도 되게 하고 싶으신거죠? 맞게 이해했나요?
서브도메인 (예 sub.test.co.kr)을 안 쓰신다면 그냥
RewriteCond %{HTTP_HOST} ^test\.co\.kr [NC]
RewriteRule ^(.*)$ http://www\.tset\.co\.kr/$1 [L,R=301,NC]
이렇게 쓰시면 됩니다
이렇게만 쓰셔도 rewriterule에서 (.*)부분을 $1변수로 받아 그대로 연결하니깐
test.co.kr/변수/ ---> www.test.co.kr/변수/ 로 전달 됩니다.
오히려 지금처럼 cond에 쓰시면 저 조건에서만 작동하니 잘 안되셨겠죠.
아.. 그리고 추가로 htaccess파일 수정 후 확인 하실땐 열어본페이지목록, 임시파일을 삭제하고 해보세요~