웹사이트를 제작하는 일을 하고 있어서 검색에 도메인이 정확하게 등록되고 연결되기 위해서 필요한 작업이 있습니다. 예시를 위해 해당 사이트 도메인으로 설명을 드리려고 합니다.
해당 사이트의 도메인은 https://www.chr.kr 이라는 도메인을 사용하고 있습니다. 그래서 네이버나 구글에도 해당 도메인으로 등록 신청을 해 놓았습니다. 그렇지만 사용자가 직접 입력하는 경우 번거롭기에 chr.kr 이라는 도메인만 입력하는 경우가 있습니다. 이런 경우 별다른 기능이 없는 일반적 사이트는 큰 문제는 없지만 아래와 같이 문제가 생기기도 합니다.
도메인 자동 이동을 하지 않을 때 생기는 문제
1. 검색 등록에 http와 www의 2개의 웹 문서가 생성될 수 있다.
2. 소셜 공유를 위한 api 키를 http와 www의 2개를 발급 받아 사용해야 한다.
3. http와 www는 별도의 사이트로 인식하여 로그인이 안될 수 있다.
4. 검색 등록에서 www. 또는 http 서로 전환되기도 한다.
위와 같은 문제가 발생할 수 있기에 도메인을 포워딩 시켜주고 통일하는 게 좋다.
.httaccess 파일을 이용한 방법
아파치 웹 서버에서 해당 폴더에 .htaccess 파일이 있다면 여러가지 규칙을 지정하여 사용할 수 있다. ftp로 접속했을 때 보이지 않는 경우도 있으나 실제 파일은 존재하기도 하다. 서버 지식이 있다면 ssh 접속해서 vi 또는 vim 편집기로 생성해도 된다. 가장 간편한 방법은 컴퓨터에서 파일을 생성하고 업로드 하는 게 쉽다.
RewriteEngine On # HTTP 접속시 HTTPS 로 이동 RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] # 정의된 여러 도메인을 하나의 도메인으로 이동 RewriteCond %{HTTP_HOST} ^(cgrap.com|www.opm.kr|chr.kr) [NC] RewriteRule (.*) https://www.chr.kr/$1 [L,R=301,NC] # www 없이 접속시 www. 자동 붙이기 RewriteCond %{HTTP_HOST} ^chr.kr [NC] RewriteRule ^(.*)$ https://www.chr.kr/$1 [L,R=301,NC] # 앞에 시작하는 2차도메인을 모두 제거 RewriteCond %{HTTP_HOST} ^([A-Za-z0-9_]+).chr.kr [NC] RewriteRule ^(.*)& http://chr.kr/$1 [L,R] # www 를 사용하지 않고 http 사용시 www 제거 RewriteCond %{HTTP_HOST} ^www.chr.kr [NC] RewriteRule ^(.*)& http://chr.kr/$1 [L,R]
설정방법 상세 설명
기능을 시작하기 위해서는 RewriteEngine On 구문을 처음에 사용 해 준다.
RewriteCond %{HTTPS} off " https를 사용하지 않는 경우 RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 도메인과 파리미터를 이용한 도메인과 URL로 치환한다.
RewriteCond %{HTTP_HOST} ^(cgrap.com|www.opm.kr|chr.kr) [NC] 나열된 3개의 도메인으로 접속하면 RewriteRule (.*) https://www.chr.kr/$1 [L,R=301,NC]" 구문을 통해 https://www.chr.kr 도메인으로 변경한다.
자주 사용하는 구문으로 " RewriteCond %{HTTP_HOST} ^chr.kr [NC] www. 없이 홈페이지에 접속하면 강제로 RewriteRule ^(.*)$ https://www.chr.kr/$1 [L,R=301,NC]" www. 붙인 도메인으로 교체한다.
가상 웹페이지 연결
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) go2url.php [L]