← 모든 기록
www vs 루트 도메인, 대표 주소 정하고 301 리디렉션하는 방법 대표 이미지
웹 운영

www vs 루트 도메인, 대표 주소 정하고 301 리디렉션하는 방법

루트 도메인과 www 도메인 중 어느 것을 대표 주소로 할지 결정하는 기준과 각각의 DNS 제약 및 SSL 지원 차이를 설명하고, Apache, AWS Route 53, Azure CDN, 무료 서비스(wwwizer, NakedSSL) 환경에서 301 리디렉션을 설정하는 단계별 가이드를 제공합니다. 실제 테스트와 검색엔진 반영 전략까지 포함해 중복 콘텐츠 문제를 해결할 수 있도록 돕습니다.

루트 도메인과 www 도메인 중 대표 주소는 DNS 제약과 SSL 인증서 지원 여부에 따라 결정합니다. 나머지 주소는 301 리디렉션으로 영구 이동 처리해 중복 콘텐츠를 방지하고 SEO 점수를 한 곳으로 모읍니다. 각 환경에 맞는 리디렉션 설정 방법을 단계별로 따라해 보세요.

루트 도메인과 www 도메인의 차이 이해하기

루트 도메인은 서브도메인이나 접두사가 없는 기본 도메인입니다. 예를 들어 example.com이 루트 도메인이고, www.example.com은 서브도메인입니다. DNS에서 루트 도메인은 A 레코드로 IP 주소를 직접 지정하지만, www는 CNAME으로 별칭을 지정할 수 있습니다. 하지만 RFC 1912는 동일한 이름에 CNAME 레코드와 다른 DNS 레코드를 공존시킬 수 없도록 규정합니다. 따라서 루트 도메인에는 SOA와 NS 레코드가 필수이므로 CNAME을 사용할 수 없습니다. 이 제약을 우회하려면 일부 DNS 제공업체에서 제공하는 ALIAS나 ANAME 레코드, 또는 AWS Route 53의 별칭 레코드 같은 기능이 필요합니다. DNS 레코드 선택에 대한 자세한 내용은 DNS A vs CNAME 선택 가이드를 참고하세요.

대표 주소를 하나로 정해야 하는 이유

루트 도메인과 www 도메인을 별도의 사이트처럼 다루면 검색엔진이 동일한 내용을 두 개의 URL로 인식해 중복 콘텐츠 문제가 생깁니다. 모든 변형을 하나의 대표 주소로 리디렉션하면 외부 링크로 유입되는 링크 자산을 집중시켜 SEO를 강화할 수 있습니다. 또한 방문자는 항상 일관된 주소로 접속하게 되어 사용자 경험이 좋아지고 이탈률을 낮출 수 있습니다. 이러한 통합은 검색엔진이 정규 URL을 올바르게 인식하도록 시그널을 보내는 역할도 합니다.

DNS 제약: 루트 도메인에는 CNAME을 바로 쓸 수 없다

루트 도메인에 CNAME 레코드를 설정할 수 없는 이유는 앞서 언급한 RFC 1912 규정 때문입니다. CDN 서비스를 이용할 때, 공급자가 제공하는 엔드포인트를 CNAME으로 연결해야 하는 경우 www 서브도메인은 문제없지만 루트 도메인은 직접 A 레코드로 IP를 입력해야 합니다. 이 때문에 Azure CDN처럼 루트 도메인에 대한 CNAME 플래트닝을 요구하는 환경에서는 추가 설정이 필요합니다. Route 53의 별칭 레코드나 Cloudflare의 CNAME 플래트닝 같은 기능이 해결책이 됩니다.

아래 표는 루트 도메인과 www 도메인의 주요 차이를 요약한 것입니다.

항목루트 도메인 (예: example.com)www 도메인 (예: www.example.com)
DNS 레코드 유형A (또는 AAAA, ALIAS 등)CNAME (또는 A)
CNAME 사용 가능 여부불가능 (RFC 1912 제약)가능
SSL 인증서 적용대부분의 CDN에서 관리형 SSL 미지원 가능성대부분 지원
CDN 연결 용이성별도 ALIAS/Flattener 필요간단
SEO 영향대표 주소로 사용 시 직접 연결대표 주소로 사용 시 리디렉션 필요

SSL 인증서 지원 여부도 선택 기준이 된다

SSL/TLS 인증서는 도메인별로 발급되며, 일부 CDN이나 호스팅에서는 루트 도메인에 관리형 SSL을 제공하지 않습니다. Azure CDN은 루트 도메인에 관리형 SSL 인증서를 지원하지 않아 HTTPS 연결 시 개인정보 오류가 발생할 수 있습니다. 이 문제를 피하려면 처음부터 www 도메인을 대표로 사용하거나, Azure Front Door처럼 루트 SSL을 지원하는 대체 서비스를 검토해야 합니다. 또한 Let’s Encrypt와 같은 무료 인증서를 사용하는 경우에도 루트 도메인과 www 도메인 모두에 인증서를 발급받아야 안전한 접속이 보장됩니다.

SEO를 위한 301 리디렉션 원칙

검색엔진은 301 상태 코드를 영구 이동으로 해석하여 기존 URL의 평가 신호를 새 URL로 전달합니다. 반면 302는 임시 이동으로 처리되어 신호 전달이 제한적이므로 반드시 301을 사용해야 합니다. 301과 302 리디렉션의 차이를 정리한 글에서 상세한 비교를 확인할 수 있습니다. 네이버의 경우 301 리다이렉트를 설정해주는 것이 최선이 아닐까 생각됩니다. 구글 서치 콘솔에서 정규 URL을 명시적으로 설정하는 것도 함께 권장합니다.

환경별 301 리디렉션 설정 방법

Apache .htaccess에서 루트만 리디렉션하기

Apache 웹서버를 사용하는 경우 .htaccess 파일에 다음 규칙을 추가하면 루트 도메인 접근을 www로 301 리디렉션할 수 있습니다. 루트 도메인만 리디렉션하려면 ^$ 패턴을 사용합니다. 전체 사이트를 www로 옮기려면 RewriteCond와 함께 사용해야 합니다.

RewriteEngine On
RewriteRule ^$ https://www.example.com/ [R=301,L]

혹은 RedirectMatch를 사용해도 됩니다. RedirectMatch 301 ^/$로도 동일한 작업을 수행할 수 있습니다.

RedirectMatch 301 ^/$ https://www.example.com/

설정 후에는 반드시 HTTP와 HTTPS, 그리고 다양한 경로에 대해 테스트하여 정상 리디렉션되는지 확인하세요. .htaccess 파일을 수정한 뒤에는 아파치를 재시작하지 않아도 즉시 적용됩니다.

Apache .htaccess에서 도메인 변경 시 경로 유지하기

기존 도메인을 완전히 새 도메인으로 변경하면서 URL 경로는 그대로 유지하려면 다음과 같이 설정합니다.

RewriteEngine On
RewriteCond %{HTTP_HOST} ^old.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.old.com$ [NC]
RewriteRule ^(.*)$ https://new.com/$1 [R=301,L]

이렇게 하면 /about 페이지가 그대로 new.com/about으로 이동합니다. 경로가 유지되어 리디렉션되므로 도메인만 변경하는 경우에 유용합니다. 같은 호스팅 내에서 도메인만 변경하면 검색엔진에 이전 도메인과 새 도메인이 한동안 함께 검색될 수 있으므로, 301 리디렉션과 함께 구글 서치 콘솔의 주소 변경 도구를 사용하는 것이 좋습니다.

AWS Route 53에서 별칭 레코드로 연결하기

AWS Route 53에서는 CNAME 제약을 우회하기 위해 별칭(Alias) 레코드를 제공합니다. 로드밸런서나 CloudFront 배포에 루트 도메인을 별칭으로 연결하고, www 서브도메인은 CNAME으로 동일한 대상에 연결하면 모든 트래픽을 한곳으로 모을 수 있습니다. 최종적으로 HTTP/HTTPS와 www/루트 상관없이 https://example.com 하나로 통일됩니다. 설정 순서는 다음과 같습니다.

  1. 로드밸런서(또는 CloudFront)에 루트 도메인을 별칭 A 레코드로 연결합니다.
  2. www 서브도메인에 동일한 대상의 CNAME 레코드를 생성합니다.
  3. SSL 인증서를 루트와 www 모두에 적용합니다.

별칭 레코드는 AWS 내부에서 무료로 제공되며 별도의 비용이 발생하지 않습니다. 단, 별칭 대상이 동일한 리전에 있어야 하는 제약이 있을 수 있으니 문서를 확인하세요.

Azure CDN 리디렉션 규칙 설정하기

Azure CDN에서는 규칙 엔진을 통해 루트 도메인을 www로 리디렉션할 수 있습니다. 먼저 CDN 프로필에 사용자 지정 도메인으로 루트와 www를 모두 추가해야 합니다. 이때 루트 도메인에는 CNAME 플래트닝을 지원하는 DNS 제공업체가 필요하거나, Azure Front Door로 전환을 고려해야 합니다. 그런 다음 URL 리디렉션 규칙을 생성하고, 조건으로 ‘StartsWith’를 선택한 뒤 패턴에 http://example.com/https://example.com/을 포함시킵니다. 대상 URL은 https://www.example.com/{request_path}처럼 지정합니다. Azure CDN의 규칙 엔진에서 리디렉션 규칙을 설정할 때 조건을 ‘StartsWith’로 선택하고 패턴에 프로토콜을 포함시키면 리디렉션이 정상 동작합니다. 이 설정에 대한 실제 사례는 Reddit 스레드에서 확인할 수 있습니다. 만약 리디렉션이 특정 브라우저에서만 작동한다면 DNS 전파나 CDN 캐시를 의심해보세요. 특히 규칙 생성 후 최대 90분까지 전파 시간이 소요될 수 있으므로 충분히 기다려야 합니다.

무료 리디렉션 서비스 활용하기: wwwizer와 NakedSSL

서버나 CDN 설정 없이도 무료 서비스를 활용할 수 있습니다. wwwizer 서비스는 루트 도메인의 A 레코드를 174.129.25.170으로 설정하면 자동으로 www 버전으로 리디렉션해 줍니다. 단, HTTPS는 지원하지 않으므로 SSL이 필요하다면 NakedSSL을 고려하세요. NakedSSL은 루트 도메인에 SSL을 제공하면서 www로 리디렉션하는 서비스이며, 사이트 1개까지 무료입니다. 사용하려면 www 사이트에 먼저 SSL이 적용되어 있어야 합니다. 두 서비스 모두 별도의 회원가입 없이 DNS 설정만으로 리디렉션을 구현할 수 있어 소규모 사이트에 적합합니다.

설정 후 실제 동작 테스트하기

리디렉션 설정을 마쳤다면 반드시 정상 동작을 확인해야 합니다. 아래 단계에 따라 테스트하세요.

  1. 브라우저에서 루트 도메인과 HTTP 버전을 직접 입력하여 원하는 최종 URL로 이동하는지 확인합니다.
  2. 터미널에서 curl -I http://example.com 명령으로 HTTP 상태 코드가 301인지 확인합니다.
    curl -I http://example.com
  3. 온라인 리디렉션 체커 도구를 사용해 다양한 User-Agent와 경로에 대한 응답을 검사합니다.
  4. 검색엔진 콘솔(구글 서치 콘솔, 네이버 웹마스터도구)에서 URL 검사 도구로 리디렉션이 인식되는지 점검합니다.

검색엔진 반영 전략

리디렉션 후 검색엔진이 새 주소를 빠르게 색인하도록 두 가지 조치를 취합니다. 먼저 XML 사이트맵에 새 URL만 포함시켜 제출하고, 기존 도메인의 색인이 점차 사라질 때까지 사이트맵을 여러 번 업데이트합니다. 또한 중요한 외부 링크가 있다면 관리자에게 새 URL로 변경을 요청하세요. 구글 서치 콘솔의 ‘주소 변경’ 도구를 사용할 수도 있습니다. 네이버의 경우 301 리디렉션을 최선으로 간주하기 때문에 별도 등록 절차는 없지만, 사이트 등록 정보를 새 도메인으로 갱신해 두는 것이 좋습니다.

참고 자료