2023년 9월 7일 목요일

도메인과 웹사이트 정비

부족한 지식으로 웹사이트를 잘못 건드렸다가 접속이 되지 않으면 참으로 난감하다. 개인적으로 보유한 도메인과 웹사이트를 '체계화'를 해 보겠다는 의욕만 앞서서 시작했다가 몇 번의 사고를 치고, 겨우 정상 궤도에 올랐다. 설정을 바꿀 때마다 나름대로 꽤 상세하게 기록을 한다고 생각했는데, 나중에 참조해 보려고 찾으면 너무 부실하게 적혀 있어서 도움이 되지 않을 때도 많다.

오늘 작업의 핵심은 내 개인 도메인인 genoglobe.com을 웹브라우저 주소 창에 넣었을 때 연결되는 공식적인 '대문 사이트'를 정비하는 것이었다. 전에는 호스팅어 내부에서 서비스했던 Zyro Website Builder로 간단히 만든 것을 쓰다가, 이를 다른 것으로 전환하는 문제를 놓고 한참을 고민하였다. 정확히 말하자면 그저께부터...

자동 설치되는 CMS(워드프레스, 줌라, 드루팔...)를 쓸 것인가 또는 호스팅어의 새로운 웹사이트 빌더를 써 볼 것인가를 고민하다가 기존에 이미 설치해 놓았던 DokuWiki 사이트를 개선하여 이를 대문 사이트로 쓰기로 하였다. 이 위키 사이트는 서브도메인을 사용하여 wiki.genoglobe.com 주소로 접속할 수 있었다. 프로그램이 설치된 위치(document root라고 하는 것이 옳을 것이다)는 public_html/dokuwiki이다.

서브도메인은 없애 버리고, .htaccess 파일을 편집하여 genoglobe.com/dokuwiki가 아니라 순수한 도메인명인 genoglobe.com을 입력해도 곧바로 연결이 되게 만들었다. public_html/dokuwiki/.htaccess 파일을 한 레벨 위, 즉 public_html에 복사한 뒤 다음 줄을 활성화하는 것이 핵심이었다. DokuWiki를 쓴게 몇 년인데, 아직도 이런 설정 요령을 정확히 알지 못하고 있었다니 한심하기만 하다.

RewriteBase    /dokuwiki

기존 대문 웹페이지로부터 개인 소개에 관한 정보를 긁어다가 약간의 편집을 거쳐서 이 위키 사이트에 입력하였다. 이제부터 https://genoglobe.com/로 접속하면 된다.

로고 옆의 타이틀 텍스트를 바꾸는 것도 쉽지 않았다. 제대로 하려면 CSS 파일을 건드려야 한다. CSS 공부를 하기는 해야 할 듯.

아직 사소한 문제가 남았다(이 글을 마무리할 무렵에 해결). https://www.genoglobe.com/으로는 이 웹사이트가 접속이 되지 않는다. 호스팅어의 웹사이트 빌더를 썼을 때에는 www.genoglobe.com과 genoglobe.com이 동일한 웹사이트로 잘 접속이 되었다. 아마도 호스팅어가 제공하는 웹사이트 빌더 또는 auto installer를 사용했더라면 이러한 부수적인 기능이 알아서 작동했을 것이다. DokuWiki는 사용자가 직접 설치하는 것이라서 최종적인 튜닝도 직접 해야 한다. 이 문제를 해결하는 호스팅어의 공식적인 문서를 소개해 둔다. 1번 문서에 의하면 웹사이트는 구체적인 호스트에 해당하는 www.mydomain.com으로 접속하게 만드는 것이 기본이고(이제부터 호스트명과 서브도메인이 헷갈리기 시작한다), 부수적으로 non-www URL을 입력했을 때 www.mydomain.com으로 연결되도록 리다이렉트하는 것이 정상이다. 그런데 나의 도메인은 반대의 상황이다. 도대체 뭐가 뒤엉킨 것인지 모르겠다. 그런데 2번 문서에서는 www를 붙인 URL이 root domain을 가리키도록 CNAME record를 생성하라고 했다. www URL과 non-www URL 중 어느 것이 먼저인지 가치관에 혼란이 온다.

  1. How to Redirect Non-www to www URLs
  2. Domains does not work with www

DNS Zone Editor에서 다음과 같은 레코드를 삽입하여 원하는 동작이 이루어지게 만들어 놓았으나 제대로 한 것이 맞는지 자신이 없다.

'www'를 붙이지 않고 도메인 이름만 입력하여 특정 호스트를 접속하는 일은 무척 단순해 보이지만(다음 인용문 참조), 그 뒤에 깔려 있는 원리는 의외로 복잡하다. 

It is up to you if you use the www subdomain address or just your domain to promote your website. [출처: LOVE2DEV]

The most common reason to discard "www" is for branding. The naked domain is snappy, looks better on promotional material, and most brand don't want something as important as their domain name cluttered with unnecessary and unrelated letters... there are a couple of reasons that a site owner would choose to use the "www". It's not that "www" is special, but that there are benefits to using a subdomain rather than the naked domain - it could be any subdomain, but "www" is the obvious and traditional choice. [출처: Nexcess

사족 -  DNS 체계에서 subdomain, hostname, host 및 www의 차이는 무엇인가? 이에 대한 설명은 출처 링크를 클릭할 것. 코멘트에 의하면 모든 답이 100% 정확하지는 않다. [출처: superuser]

예전에 이를 다 이해했었다고 생각했지만 지금은 잘 기억이 나지 않는다. 여러 도메인을 한 사이트로 연결하는 것은 기술적으로 그다지 어렵지 않다 하더라도 - 쿠키 관리 측면에서는 꼭 그렇지도 않다는데(위에서 두 번째 인용문 참조) - '진실성'을 저해하는 행위라는 글을 읽었었던 기억이 난다.

.htaccess 파일을 수정하는 다음의 방법은 DNS 설정을 건드리지 않는다('How to redirect non-www URLs to www?). 그런데 내가 www로 시작하는 호스트를 갖고 있던가? 아, 머릿속이 뒤죽박죽이 되었다. 아, www는 subdomain이지... 아닌가? 호스트의 이름인가?

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

오늘 작업을 하면서 사소한 노하우를 하나 습득하였다. 한글이 포함된 URL을 웹브라우저 창에서 복사하여 다른 곳에 붙여 넣으면 %-encoding이 되어서 가독성도 떨어지고 분량도 너무 길어지는 불편함이 있었다(접속에는 문제가 없다). 다음에 보인 URL 두 개는 같은 것이다.

https://genoglobe.com/dokuwiki/blog/%EC%83%88_%EB%8F%84%EB%A9%94%EC%9D%B8%EC%97%90_%EB%91%A5%EC%A7%80%EB%A5%BC_%ED%8B%80%EA%B3%A0

https://genoglobe.com/dokuwiki/blog/새_도메인에_둥지를_틀고

해결 방법은 아주 간단하다. 앞부분 몇 글자를 생략하고 마우스로 긁어서 복사한 다음, 붙여넣은 뒤 나머지는 손으로 쳐 넣으면 된다. 다음의 글에서 이러한 힌트를 얻었다.

한글 URL을 붙여넣었을 때 영어, 숫자로 변환될 경우 해결법 (링크 복사)

댓글 없음: