.htaccess를 이용하여 www 도메인을 non-www 도메인으로 리디렉션시키기

워드프레스 정보를 제공하는 블로그 Avada 2018. 9. 12. 11:16 • 댓글:

예를 들어, http://example.com을 브라우저 주소 창에 입력하더라도 http://www.example.com 사이트로 연결되도록 하고 싶은 경우가 있습니다.  혹은 그 반대로 www.example.com을 입력해도 example.com처럼  www가 없는 도메인 사이트로 연결되도록 하고 싶을 수 있습니다.

이 경우 보통 호스팅 레벨에서 제어할 수 있다면 수월합니다. 가령 해외호스팅 중 하나인 SiteGround(사이트그라운드)에서는 cPanel의 Domains > Redirects 툴을 통해 리디렉션을 쉽게 설정할 수 있습니다.

해외호스팅 사이트그라운드 Redirects 툴해외호스팅 사이트그라운드(SiteGround)의 Redirects 툴

.htaccess를 이용하여 non-www 도메인을 www 도메인으로 리디렉션시키기

다른 방법으로, 다음과 같은 규칙을 .htaccess 파일에 추가하여 non-www 도메인을 www 도메인으로 리디렉션시킬 수 있습니다.

# redirect non-www to www
# Force www with htaccess
# 브라우저에 www 강제로 추가하기
RewriteCond %{HTTP_HOST} ^(?!www\.)(.+) [NC]
RewriteRule ^(.*) http://www.%1/$1 [R=301,NE,L]

사이트가 HTTPS로 로드되는 경우 http://는 https://로 변경하면 됩니다. 혹은, 다음과 같은 규칙도 가능합니다.

RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301,NC]

example.com은 실제 도메인 이름으로 바꾸도록 합니다.

www 도메인을 non-www 도메인으로 리디렉션시키기

이와 반대로 www를 강제로 제거하려면 다음과 같은 규칙을 사용할 수 있습니다.

# redirect www to non-www
# 브라우저에서 www 제거하기
RewriteCond %{HTTP_HOST} ^www\.(.+) [NC]
RewriteRule ^(.*) http://%1/$1 [R=301,NE,L]
// Source: stackoverflow

웹호스팅 내에서의 설정이나 DNS 설정으로 인해 위의 코드를 사용했을 때 리다이렉트 오류가 발생하는 경우도 있습니다. 그런 경우 웹호스팅 업체에 문의하여 적절한 방법을 모색해보시기 바랍니다.

티스토리에서 SSL을 적용할 경우 www 도메인이나 www가 없는 도메인 하나만 연결이 가능한 것 같습니다. 그런 경우 www 도메인을 www가 없는 도메인으로 리디렉션시키고 www가 없는 도메인을 연결하는 것이 수월할 것 같습니다.

www 도메인에서 www가 없는 도메인으로 연결하는 방법은 다양할 것입니다. 예를 들어, CNAME 설정을 통해 www 도메인을 www가 없는 도메인을 가리키도록 하는 방법도 생각해볼 수 있습니다. 이론상 별 문제가 없을 것 같지만, 실제로 되는지는 테스트가 필요합니다.

그리고 www가 있는 도메인과 www가 없는 도메인을 사용하는 경우 SEO에는 차이가 없습니다. 다만, 대형 사이트가 아닌 경우 www가 없는 도메인을 사용하는 것이 간결함을 추구하는 요즘의 트렌드에 부합할 수 있습니다.

참고: