고스트 블로그에서 한글 URL 적용하는 방법(24년 8월 업데이트)

고스트 블로그에서 한글 URL 사용시 영어로 자동 변환되는 문제를 해결하고 한글 URL을 적용시키는 방법을 알아봅니다.

고스트 블로그에서 한글 URL 적용하는 방법(24년 8월 업데이트)

고스트 블로그에서는 한글 URL을 공식적으로 지원하지 않습니다. 그래서 저도 이 블로그에 한글 URL을 적용시킨다고 구글링을 하면서 삽질을 했습니다.

고스트 블로그를 하시는 분이 얼마나 될지는 모르겠으나 덜 삽질하라고 이렇게 글을 쓰게 됐습니다. 참고로 저는 코딩에 대한 지식은 전무합니다. 따라서 이 글을 코딩에 대한 지식이 전무하더라도 따라할 수 있도록 썼습니다.

고스트 블로그에서는 한글 URL을 적용하려 하면 이상하게 한글 발음이 영어로 전환됩니다. 예를 들어서 '안녕하세요'는 'anneonghaseyou'로 자동으로 변경이 됩니다.

구글에서는 아래 영상을 보면 알 수 있듯이 SEO에 최적화 하기 위해서는 지역의 언어를 사용하라고 되어 있습니다. 한국에서는 당연히 영어보다 한국어 URL이 SEO적으로 좋겠죠.

영어가 아닌 단어를 URL에 적용 시켜도 될까요?

한국 사람들을 타겟으로 글을 쓴다면 당연히 URL도 한국어로 쓰는 것이 좋습니다. 그럼 바로 고스트 블로그에서 한국어 URL을 적용 시키는 방법을 알려드리겠습니다. 아래 방법은 윈도우 10 기준으로 작성되었습니다.

고스트 블로그에서 한글 URL 적용하는 방법

(2024-08-12 업데이트 완료)

보니까 버전이 여러번 업데이트 되면서 한글 URL 적용이 기존 방법대로 안되길래 코드 뭐가 변경됐는지 2시간 정도 삽질하다가 기록용으로 남깁니다.(ghost를 사용하고 계신 다른 분들도 몰라서 여기저기 커뮤에 글쓰던데 이 글이 도움이 되면 좋겠네요 😊)

24년 8월 12일 업데이트(Ghost 5.89.1 기준)

변경해야 할 파일:

  • .versions\5.89.1\node_modules@tryghost\string\lib\slugify.js
  • .versions\5.89.1\core\built\admin\assets\ghost-랜덤문자열.js
  • .versions\5.89.1\node_modules@tryghost\validator\lib\validator.js

slugify.js 변경사항:

// Remove non ascii characters
string = unidecode(string);

위 사항을 찾아

// Remove non ascii characters
// string = unidecode(string);

이렇게 주석처리 해줍니다.

ghost-랜덤문자열.js(ghost-b5e602d62644bd997ce54c647953f437.js) 변경사항:

yield this.slugGenerator.generateSlug("post",t)

위에 해당 되는 부분이 두 곳 존재합니다. 두곳 모두 t로 변환해주세요

const e=yield this.slugGenerator.generateSlug("post",t)
if(i=yield this.slugGenerator.generateSlug("post",t),i===r)
    
// 위 두 라인을 아래처럼 변경

const e=t
if(i=t,i===r)

validator.js 변경사항:

validators.isSlug = function isSlug(str) {
    assertString(str);
    return validators.matches(str, /^[a-z0-9\-_]+$/);
};

위 코드를 아래처럼 변경합니다.

validators.isSlug = function isSlug(str) {
    assertString(str);
    return validators.matches(str, /^[a-z0-9\-_ㄱ-ㅎㅏ-ㅣ가-힣]+$/);
};

자 이제 ghost 재시작하면 적용됩니다. 다른곳에 퍼가실때는 출처 꼭 부탁드립니다.

Please make sure to leave a credit if you share this article. Thank you!

고스트 5 아래 버전 기준

변경해야 할 파일들:

  • ./node_modules/@tryghost/string/lib/slugify.js
  • ./node_modules/@tryghost/validator/lib/validator.js

'윈도우 키 + X'를 누르고 Windows PowerShell(관리자)를 클릭해주세요. CMD를 켜도 상관없고 맥북의 경우 터미널을 열면 됩니다.

Windows PowerShell 관리자 권한으로 실행한 모습
Windows PowerShell 실행 화면

위 터미널에 아래와 같이 입력합니다:

// 0.0.0.0 에는 블로그 서버의 아이피를 입력하세요.
ssh root@0.0.0.0

// 입력하면 아래와 같은 문구가 뜹니다. 서버 구축시 설정했던 비밀번호를 입력합니다.
root@0.0.0.0's password:

비밀번호를 입력하여 정상적으로 접속을 하셨다면 다음으로 아래의 코드를 입력합니다:

// 고스트 4.9.1 버전 기준입니다. 만약 최신버전으로 업데이트 되었다면 경로가 다를 수 있습니다. 하지만 계속해서 업데이트 중 입니다.
cd /var/www/ghost/versions/4.9.1
vi ./versions/4.9.1/node_modules/@tryghost/validator/lib/validator.js

인제 무슨 코드들이 막 보일겁니다. 키보드의 이동키를 이용해서 아래 코드를 찾아줍니다.

validator.extend('isSlug', function isSlug(str) {
    return validator.matches(str, /^[a-z0-9\-_]+$/);
});

위 코드를 아래 코드를 변경해줍니다. 변경 방법은 간단합니다.

Ins를 누르면 편집모드로 바뀌고 편집이 끝나면 ESC로 편집을 종료하고 :wq!를 입력하고 엔터를 쳐서 저장하면 됩니다. 커서는 이동키로 움직이시면 됩니다.

자세한 방법은 맨 아래의 '참고'란에 있는 Vim 단축키를 참고하시기 바랍니다!

validator.extend('isSlug', function isSlug(str) {
    return validator.matches(str, /^[a-z0-9\-_ㄱ-ㅎㅏ-ㅣ가-힣]+$/);
});

위와 같이 편집을 정상적으로 마치셨다면 아래 코드를 입력합니다.

vi ./ghost/versions/4.9.1/node_modules/@tryghost/string/lib/slugify.js

이번에도 편집창이 떴을텐데 같은 방법으로 아래 코드를 수정해줍니다.

// 아래 코드를 주석처리 해주세요.
string = unidecode(string);

// string = unidecode(string);

string = unidecode(string); <- 이 부분을 //를 삽입하여 주석처리를 해주시면 됩니다. 주석처리 후 다시 콘솔로 돌아옵니다. 이제 수정은 모두 끝났습니다. 아래 코드를 입력하여 고스트 블로그를 재부팅 해주면 완료가 됩니다.

sudo -i -u ghost-mgr
ghost restart

조금만 기다리면 고스트 블로그가 정상적으로 재부팅이 될겁니다. 혹시라도 오류가 난다면 그건 수정하는 도중에 기호를 잘못 넣었다든가 하는 실수가 있는것이기에 다시 한번 보시고 해보세요!

궁금한점이나 잘 안되는게 있다면 댓글 달아주시면 최대한 빠르게 답변을 드리도록 하겠습니다!


find . -name "*.js" -type f | xargs grep "string = unidecode(string)"

find . -name "*.js" -type f | xargs grep "str, /^"

버전 변경 시 두 항목 검색 후 맞는 파일 찾아 수정.

참고

몇가지 SSH 명령어와 vim 단축키
몇가지 SSH 명령어와 vim 단축키. GitHub Gist: instantly share code, notes, and snippets.
Ghost 4 한글 Slug
고스트는 한글주소를 기본적으로 쓸 수가 없다. 그런데 주소가 검색최적화에 무척 중요하다고 해서 한글주소를 사용하려고 한다. 구글링 고고~~ https://ghost.rivario.com/ghost-한글-slug-지원하기/[https://ghost.rivario.com/ghost-%ED%95%9C%EA%B8%80-slug-%EC%A7%80%EC%9B%90%ED%95%98%EA%B8%B0/…
Ghost 한글 slug 지원하기
Ghost는 포스트 URL에 한글이 있는 경우 이의 영문 발음 표기로 자동으로 변경한다(unidecode 모듈이 담당). 예를 들어 안녕하세요는 anneonghaseyou로 변경된다. 자동 변환을 사용하지 않고 한글 그대로 URL에 사용하는 방법은 현재 제공을 하고 있지 않아서 소스를 수정했다. Ghost 2.21.1 버전에 대한 수정파일이지만 수정된 부분이 많지 않아서 다른 버전도 쉽게

Share Tweet Send
0 댓글들
Loading...
You've successfully subscribed to TMI
Great! Next, complete checkout for full access to TMI
Welcome back! You've successfully signed in
Success! Your account is fully activated, you now have access to all content.