워드프레스에서 영어, 중국어, 일본어 등 다국어 사이트를 운영하려는 경우에 많이 사용되는 WPML에서는 언어 URL을 세 가지 옵션 중에서 선택할 수 있습니다.
- 서브 디렉터리 형식
- 언어별로 다른 도메인
- 언어 이름을 파라미터로 추가
보통은 첫 번째 옵션이 사용됩니다. 첫 번째 옵션은 example.com이 기본 언어라면, 영어는 example.com/en이 됩니다.
언어 이름을 파라미터로 추가하는 형식을 선택하면 example.com?lang=en처럼 파라미터 형식으로 언어 이름이 추가됩니다. 서브 디렉터리 형식을 이용할 때 문제가 있는 경우에 이 옵션을 선택할 수 있습니다.
언어별로 다른 도메인을 지정하는 것도 가능합니다. 가령, 한글은 example.co.kr, 영어는 example.com, 일본어는 example.co.jp처럼 언어별로 다른 도메인을 매핑하는 것입니다. 또는, 영어는 en.example.com, 일본어는 jp.example.com, 중국어는 cn.example.com처럼 서브도메인 형식으로 추가하려는 경우에도 두 번째 옵션을 이용할 수 있습니다.
언어별로 다른 도메인을 지정하려면 워드프레스 알림판 > WPML > 언어 > 언어 URL 형식(Language URL Format)에서 "각 언어에 대해 다른 도메인(A different domain per language)"을 선택하면 됩니다.
도메인 또는 서브도메인을 각 언어에 대하여 지정하기 전에 먼저 도메인을 올바르게 연결해주어야 합니다. 도메인의 네임서버 정보를 변경하거나 A 레코드나 CNAME을 추가하는 작업이 필요할 수 있습니다.
cPanel에서 서브도메인/애드온 도메인 추가
블루호스트(Bluehost)나 사이트그라운드(SiteGround) 같은 해외 호스팅을 이용하는 경우 cPanel을 통해 서브도메인을 추가하거나 애드온 도메인을 추가할 수 있습니다. 외부 도메인을 추가하는 경우 먼저 도메인의 네임서버를 블루호스트나 사이트그라운드에서 제시하는 정보로 변경해야 합니다. 네임서버를 변경한 후에 24시간 ~ 48시간 정도 지나야 완전히 변경됩니다.
도메인이나 서브도메인을 추가하려면 cPanel에 로그인한 후에 Domains > Addon Domains 또는 Subdomains을 선택합니다.
애드온 도메인이나 서브도메인이나 추가하는 방법은 거의 비슷합니다. 애드온 도메인을 추가할 수 있는 경우 Addon Domains 아이콘을 클릭하면 그림과 같이 도메인을 추가할 수 있는 화면이 표시됩니다.
여기서 중요한 것은 Document Root를 기본 언어의 도메인을 가리키도록 설정해야 한다는 점입니다. 보통 public_html이 기본 도메인(Primary domain)의 경로입니다. 하지만 기본 언어의 도메인의 Document Root 폴더가 /public_html/korean/이라면 해당 경로를 지정해주어야 합니다.
서브도메인에 대해서도 마찬가지입니다.
서브도메인에서도 Document Root의 경로를 기본 도메인의 Document Root의 경로로 지정해주어야 합니다. 가령 기본 도메인의 Document Root 경로가 /public_html/blog라면 이 경로로 지정해주면 됩니다.
도메인이나 서브도메인을 올바르게 추가한 후에 WPML의 "언어 URL 형식"에서 "각 언어에 대해 다른 도메인"을 선택하고, 해당 언어에 대하여 방금 추가한 도메인이나 서브도메인을 입력하도록 합니다.
카페24 등 국내 웹호스팅 이용 시
블루호스트 등 해외호스팅에서는 도메인을 추가할 때 경로를 지정할 수 있어 하나의 계정에서 여러 개의 도메인으로 서로 다른 사이트를 운영할 수 있습니다. 하지만 카페24 등 국내 웹호스팅의 일반적인 호스팅(공유호스팅)을 이용하는 경우 도메인을 추가하면 보통 기본 도메인과 같은 경로를 가리키도록 도메인이 추가됩니다.
즉, example.com이 추가되어 있는 상태에서, example.co.jp라는 새로운 도메인을 추가해도 example.com과 동일한 경로로 추가됩니다. 따라서 하나의 계정에서는 보통 하나의 사이트만 운영이 가능하고 도메인은 상품에 따라 여러 개 추가하여 동일한 사이트를 가리키도록 할 수 있습니다.
이 경우에는 타사 도메인인 경우 도메인의 네임서버를 카페24 등에서 요구하는 네임서버로 지정해주고 도메인을 웹호스팅 계정에서 추가해주면 됩니다. 이 방법을 사용하면 하나의 계정에서도 언어별로 도메인을 추가하여 여러 개의 사이트를 운영하는 것과 동일한 효과를 얻을 수 있습니다.
수동 설정
최상위 레벨 도메인 셋업으로 DNS 설정
자체 DNS 서버를 보유하고 있는 경우 최선의 방법은 외부 도메인에 대하여 "A 레코드"를 생성하여 사용자의 DNS 서버를 가리키도록 하는 것입니다.
두 가지 레코드를 이용할 수 있습니다.
- A 레코드 - 서버의 IP를 지정해줍니다. 이 방법이 바람직하고 빠른 솔루션입니다.
- CNAME 레코드 - 서버의 도메인 이름을 지정합니다. 조금 느리지만 서버의 IP 주소가 자주 바뀌는 경우에 유용합니다.
위의 그림을 보면 어떻게 설정할지 쉽게 감이 잡힐 것입니다. A 레코드가 바람직하지만, CNAME 레코드를 통해서도 추가가 가능합니다.
서브도메인 셋업으로 DNS 설정
서브도메인 셋업은 쉬운 편입니다. DNS 서버에서 동일한 HTTP / HTTPS 서버 IP나 도메인을 가리키도록 추가 A 레코드나 CNAME 레코드를 생성해주면 됩니다.
설정을 완료했다면 아래의 "HTTP 서버 설정하기" 부분을 진행해야 합니다.
HTTP 서버 설정하기
웹호스팅 서비스를 이용하는 경우 도메인의 네임서버를 설정하고 웹호스팅 계정에 로그인하여 도메인을 추가하면 도메인이 연결되게 됩니다.
하지만 서버 호스팅을 이용하는 등 서버를 직접 운영하는 경우, 설정이 올바르게 작동하려면 위에서 사용자의 DNS 서버를 가리키도록 추가한 도메인 이름(또는 서브도메인 이름)을 인식할 웹 서버에서 엔트리를 생성해주어야 합니다.
도메인을 직접 운영하고 관리하고 있는 경우 비교적 수월하게 가능합니다. 현재 구성에 서버 별칭(Server Alias)를 추가해주면 됩니다.
다음은 Apache 서버 설정에 사용되는 예시입니다.
DocumentRoot "/var/www/www.example.com/webroot"
ServerName example.com
ServerAlias example.de
...
Nginx 서버에서도 비슷합니다.
server {
server_name example.com;
...
}
server {
server_name example.de;
...
마치며
도메인 설정과 관련된 부분이 어렵게 느껴질 수 있지만, 일반 웹호스팅을 이용하는 경우 쉽게 설정이 가능합니다. 서버를 직접 운영하는 경우에는 서버 관리자가 위의 내용을 참고하여 도메인을 설정해주어야 합니다. 일반 사용자인 경우 서버 관리자에게 연락하여 요청하시기 바랍니다.
이상으로 WPML에서 언어별로 다른 도메인을 사용할 경우에 도메인 또는 서브도메인을 설정하는 방법에 대해 살펴보았습니다. 이 부분의 내용은 멀티사이트에도 동일하게 적용됩니다.
참고로 WPML은 워드프레스에서 다국어 사이트를 운영할 때 사용되는 플러그인으로, 아바다, 엔폴드, BeTheme 등 많은 테마에서 WPML과의 호환성을 표시하고 있습니다. 다국어 사이트를 운영할 경우 WPML과의 호환성을 표시하는 테마를 선택하는 것을 고려할 수 있습니다.
sample.com : 메인도메인
shop.sample.com : 서브도메인
서브도메인에 우커머스를이용 하여 샵을 만들려고 합니다.
로그인 때문에 문의 드립니다. 메인도메인에 로그인을 하면 서브도메인에도 로그인이 유지가 되는지요?
서브도메인에 따로 로그인을 해야되는지요? 서브도메인 보면 로그인 창이 뜹니다.
안녕하세요?
관리자로 로그인하면 서브도메인에도 로그인이 유지될 것 같습니다.
실제로 테스트해 보시고 잘 안 되는 경우 WPML에 문의해보시면 좋을 것 같습니다.
감사합니다.
항상 도움주셔서 감사합니다.
잘 설명 글 읽으면서 맛있는 요리를 먹는 느낌을 느끼게되네요.
감사합니다~
도메인 설정과 관련된 부분은 직접 경험해보지 않으면 감을 잡기가 조금 어려울 수도 있을 것 같습니다.
가능한 한 쉽게 설명하려고 노력했는데, 이해가 쉬운지 모르겠네요.