2021년 3월 18일 목요일

GenoGlobe.kr 하위의 위치 자료를 GenoGlobe.com으로 옮기고 .htaccess REDIRECT를 써서 이전 주소로도 접속이 되게 만들기

GenoGlobe.kr/kribb에서 돌아가던 위키 사이트를 GenoGlobe.com/kribb으로 옮겼다. 이를 보통 '마이그레이션(migration)'이라 부른다. '.kr'이 '.com'로 바뀌는 것을 제외하면 웹문서 주소(URL)의 모든 부분은 똑같다. 따라서 GenoGlobe.kr의 .htaccess 파일에서 리다이렉트를 선언하면 이전 주소를 웹브라우저 주소창에 입력해도 알아서 새 주로소 변환되어 찾아가게 된다.

.htaccess 파일의 편집 작업을 호스팅어의 파일매니저에서 시도하다가 접속이 너무 자주 끊겨서 ssh로 접속하여 vi 편집기로 직접 수정하였다. 별다른 것은 없고 다음의 한 줄이 내가 원하는 리다이렉트 기능을 충실하게 수행하게 만든다.

Redirect 301 /kribb/ https://genoglobe.com/kribb/

도쿠위키 문서라서 /kribb 하위에 다른 문자열이 계속 붙는 복잡한 구조를 하고 있지만 리다이렉션에 의해서 충실하게 연결이 됨을 확인하였다.

해법은 이렇게 단순하지만 몇 시간에 걸친 시행착오를 겪었다. 왜냐하면 GenoGlobe.kr의 DocumentRoot에 또 다른 위키가 설치된 상태였기 때문이다. 도쿠위키를 기본 설명대로 설치하면 mydomain.com/dokuwiki/doku.php를 입력하여 연결하게 된다. 중간의 dokuwiki는 DocumentRoot 하위에 실제로 존재하는 서브디렉토리이다. 이번에 마이그레이션한 위키의 경우 'kribb'이 이에 해당한다. 이와는 별도로 개인적인 용도의 글을 쓰기 위한 또 다른 위키를 GenoGlobe.kr의 DocumentRoot에 서브디렉토리 없이 설치를 한 뒤, Nice URL을 쓰기 위해서 .htaccess에 다소 복잡한 코드를 심어 놓았었다.

개인 용도의 위키는 글이 많이 않아서 일부 페이지만 수작업으로 옮기고 지워도 된다. 따라서 .htaccess 파일을 위에서 소개한 Redirect 문 등 필요한 것만 남기고는 다 지웠다. 그리고 doku.php로 자동으로 연결되게 만드는 index.php도 무력화하였다. 만약 개인 용도의 위키를 접속할 일이 있으면 GenoGlobe.kr/doku.php를 주소창에 직접 입력하면 된다. 예전에는 GenoGlobe.kr이라고만 치면 개인 위키로 연결되었었다.

이제부터는 GenoGlobe.kr에는 별도의 웹문서를 두지 않되, 만약 외부 사용자가 하위폴더 없이 이 도메인명만 입력하면 GenoGlobe.com으로 5초 뒤에 연결되도록 만들었다. 다음과 같은 짤막한 index.html을 하나 만드는 것으로 원하는 바를 이룰 수 있다. CSS(cascading style sheet)를 조금이라도 알면 이렇게 보기 흉한 재전송 알림 html 문서를 만들지는 않았을 것이다.

<html>
<head>
<meta http-equiv="refresh" content="5; URL=https://genoglobe.com">
</head>
<body>
You will be automatically redirected to <a href>https://genoglobe.com</a></a> within 5 seconds...
</body>
</html>

도메인 관리 기관에서 서비스하는 '도메인 포워딩'으로는 아마 이런 상세한 수준의 리다이렉트를 하기 어려울 것이다. GenoGlobe.kr에서 제공할 웹문서 자료 등의 서비스가 이제는 남아있지 않게 되었으니 호스팅어보다 더 가격이 싼 웹호스팅업체로 이전을 하는 것이 나을 것이다. 호스팅어에서는 비용이 낮은 서비스로 다운그레이드를 하는 것이 불가능하기 때문이다. 금주 월요일에 호스팅어에서 GenoGlobe.kr 웹호스팅 비용 1년치를 결제하였으나 아마 30일 이내에 환불이 가능할 것으로 보인다. Lifetime SSL certificate는 좀 아깝지만 어쩔 도리가 없다.

000webhost라는 이름의 호스팅어 자회사(?)에서는 정말 싼 가격의 웹 호스팅 서비스를 실시한다고 하니 여기를 알아보아야 되겠다.

이틀 정도를 거친 삽질의 연속이었다. 언제나 초보 수준에 머무는 웹 관리자는 모든 것이 어렵다. HTML, CSS, 자바스크립트 및 JQuery 정도는 어느 수준으로 알아야 할 것이다. 아직 이런 준비가 덜 된 초보자를 위해서 웹 호스팅 서비스라는 산업이 있다는 것이 얼마나 다행인지 모르겠다. 

3월 19일 업데이트 - Redirect를 현명하게 쓰기

만약 .htaccess 파일을 다음과 같이 작성한다면, 'GenoGlobe.kr/블라블라'는 자동적으로 'GenoGlobe.com/블라블라'로 리다이렉트된다. '블라블라'는 빈 문자열일 수도 있고, 몇개의 서브 폴더를 거치는 복잡한 하위 주소일 수도 있다.

Redirect 301 / https://genoglobe.com

그러나 나는 왜 GenoGlobe.kr을 하위 주소 없이 입력한 경우에만 GenoGlobe.com으로 가게 만드는 index.html 파일을 만들어야만 했는가? 그것은 GenoGlobe.kr을 시험적 용도로 계속 사용할 수 있게 만들기 위함이다. 이 업데이트에서 소개한 한 줄의 명령어는 GenoGlobe.kr로 들어오는 모든 접속자를 예외없이 GenoGlobe.com으로 보내버리는 단점이 있다. GenoGlobe.kr 도메인의 웹사이트를 호스팅하는 서버에서 PHP 공부를 하려고 해도 시작도 하기 전에 전부 GenoGlobe.com으로 리다이렉트가 될 것이기 때문이다.

RewriteCond 명령을 잘 이용하여 요청된 URL을 잘 판별한 다음 다른 사이트로 보낼 것은 보내고 그렇지 않은 것은 원래 요청된 곳으로 그대로 가게 만드는 현명한 .htaccess 파일을 만드는 것이 다음의 목표이다.

댓글 없음: