워드프레스 한글 태그 문제 해결방법

범인은 EUC-KR과 UTF-8!

워드프레스를 처음 설치하고 나면 한글 태그 문제가 발생할 수 있습니다. 예를 들어, https://taegon.kim/tags/영화로 접근하면 이상하게 분명히 존재하는 영화 라는 태그를 못 찾는 문제죠. 제 경우엔 심지어 https://taegon.kim/tags/%EC%98%81%ED%99%94와 같은 형태로 보내도 괴상한 문자로 받곤 해서 짜증났던 적이 있습니다.

그러다가 문제점을 발견할 수 있었는데, 바로 mod_url 때문이었습니다. 알고 보니, 제가 받는 웹 호스팅에서 서버측 인코딩을 아예 euc-kr 로 박아놓았더군요. –-;; 그래서 .htaccess 파일을 통해  받는 인코딩을 무조건 _utf-8으로 변환해주도록 수정해두었습니다.

해보시면 알겠지만, 지금 제 블로그에는 한글 이름으로 검색하거나 태그를 입력해도 잘 동작합니다. ^^ .htaccess 파일에 다음과 같이 추가해주시면 됩니다.

<IfModule mod_url.c>
    ServerEncoding UTF-8
    ClientEncoding EUC-KR
</IfModule>

만약 블로그 언어로 EUC-KR을 사용하신다면 위의 UTF-8과 EUC-KR 자리를 바꾸시면 됩니다.

추가1: 서버측 언어를 EUC-KR로 하면 IE7과의 문제가 발생할 수 있다고 합니다.
추가2: 추가1의 문제가 최신 버전에서는 수정되었다고 합니다.

  1. mod_url 이 문제라면 mod_url 을 꺼버리면 되지 않나요? 아래처럼요. 원래 rfc의 uri 와 관련된 권고안을 보면 uri 는 utf-8 로 보내거나 %digit 형태로 인코딩하거나 둘 중 하나를 사용하도록 되어있으니, 클라이언트 인코딩을 무조건 euc-kr 로 가정하는 건 답이 아닐 것 같네요.

    mod_url 은 아래와 같은 방법으로 끌 수 있습니다.

    CheckURL Off

  2. @정태영
    mod_url은 보내온 URL이 서버 인코딩하고 맞지 않는 경우에만 동작합니다. 따라서 말씀하신 대로 인코딩되거나 UTF-8으로 보내진 경우라면 mod_url에서 변환이 일어나지 않습니다.
    제 블로그의 태그는 한글 혹은 영어로만 이루어져있고 앞으로도 그럴 것이므로, 한글을 euc-kr과 utf-8이 아닌 다른 문자셋으로 보내는 브라우저가 나타나지 않는한 문제가 발생하지 않을 것입니다.
    끄는 방법은 알고 있지만, 꺼버리는 것보다는 브라우저 주소창에서 바로 http://mygony.com/tags/블로그 처럼 한글 주소를 입력해도 문제가 없도록 하는 편이 더 나은 방법 아닐까요? ^-^

  3. 지금 제가 봉착한 문제와 딱 들어맞는데요, htaccess 라는 파일을 대체 어디서 찾아야 할 지 모르겠습니다. 호스팅측에서 제공하는 것인지, 워드프레스 폴더 내에선 찾을 수가 없는데 만약 그렇다면 이 파일을 수정할 수 있는 루트를 자세히 좀 설명해주실 수 있으신지요? 참고로 제 호스팅 업체는 까페24인데 ms_sql을 사용하고 있는 것 같습니다.

    1. 워드프레스를 처음 설치할 때는 없는 파일입니다. ^^;
      오래전 일이라 가물가물하지만, 제가 올린 코드만 포함해서 .htaccess 파일을 만들어주셔도 될 것 같습니다. 단, .htaccess 파일을 아파치 웹 서버일 때만 효과가 있습니다.
      MS-SQL을 사용하고 계신다니 어쩌면 웹 서버가 IIS일 수도 있을 것 같은데, 제가 IIS는 사용해 본 적이 없어 위의 해결법이 도움이 될지 모르겠습니다.

  4. 호스팅이전후 테그가 난장판이되는 바람에 고전했는데…
    담박에 해결되었군요

    감사합니다!

Leave a Reply