아파치 UTF-8 URL은 불가능한 것인가
겂없이 CentOS 4.4 64Bit를 설치해서 서버를 구성하고 있는 중입니다.
APM은 소스 설치를 해보려다 php컴파일시 죽었다 깨어나도 libpng를 찾지 못해 포기하고
RPM으로 APM을 구성하였습니다.
주 용도가 웹서버인데 테터툴즈나 제로보드5 등 향후 많은 곳에서 UTF-8을 사용하리라 예상되고
개인적인 고집도 있고해서 UTF-8로 모든 문자셋을 맞췄습니다.
그리고 좌절했습니다.
먼저 euc-kr 환경에서 운영하던 기존 홈페이지(제로보드기반)를 마이그레이션하는데
많은 난관이 가로막았었습니다.
kldp와 phpschool 등 여러곳을 찾아 거의 모든 문제를 해결했지만 마지막 문제는 벽에 가로막혔습니다.
아파치에서 UTF-8로 된 URL을 처리하지 못하더군요
http://asgard.pg.pe.kr/테스트.html 과 같은 문서는 절대 읽지 못합니다.
[Sun Jan 14 20:15:09 2007] [error] [client 221.145.58.226] File does not exist: /home/asgard/public_html/\xc5\
xd7\xbd\xba\xc6\xae.html
(참고로 시스템 문자셋도 UTF-8입니다.)
하지만 http://asgard.pg.pe.kr/%ED%85%8C%EC%8A%A4%ED%8A%B8.html 처럼 UTF-8로 인코딩된 주소는 처리를 합니다.(당연하겠죠?)
문제는 한글이 포함된 파일도 상당히 많으며 한글로 링크가 걸린경우 처리를 하지 못한다는것입니다.
mod_url.so라는 아파치 모듈을 이용하여 이 문제를 해결하려 했으나
OS가 64bit이라서 그런지 모듈을 로드해도 엉뚱한 문자로 변환하여 쓸모가 없습니다.
예를 들어 위 테스트 주소 같은 경우 http://asgard.pg.pe.kr/?뚯뒪??html 처럼 주소를 변환하더군요
제가 잘못 알고있는 것인지 모르지만
아파치와같이 폭 넓게 여러 나라에서 쓰이는 슈퍼스타가
아직도 한글같은 UTF 주소 처리를 명쾌하게 못한다는데 적지않게 놀랐습니다.
(모듈을 로딩하여 해결하시는 분들도 있지만 "근본적인" 해결책이 없어서 놀랐습니다.)
서버 덕분에 주말을 컴퓨터 앞에서 보내느라 쉬질못해 다음 주 한 주가 정말 두렵습니다.
주말을 허망하게 날려버린 불쌍한 저에게 힘을 주실만한 정보 아시는 분 없으신지요
[url]http://xenosi.de/show.s/
[url]http://xenosi.de/show.s/가나다/한글입니다.html?asdf=한글인가요[/url]
위 url 은 디렉토리를 그냥 출력하는 예제 입니다.
보시면 한글이 깨지지 않음을 알 수 있습니다.
하지만 뒤의 asdf 변수의 한글은 깨졌죠.
결론은 익스플로러는 ? 이전까지는 '아무런 변환도' 하지 않습니다.
euckr 웹페이지에서 링크 거는 경우에는 당연히 euckr 로 보내질 테니 안되겠지요.
이 경우에는 404 를 php페이지로 리다이렉트 해서 iconv 로 변경할 수 밖에 없을듯 합니다.
그 외의 경우라면 파일명이 utf-8 로 잘 들어있기만 하면 잘 나옵니다.
emerge money
https://xenosi.de/
죄송합니다만
적어주신 URL은 아래와 같이 나옵니다.
????????????html
Array
(
[asdf] => ???????
문자셋을 euc-kr로 변경하면 다음처럼 나옵니다.
가나다/한글입니다.html
Array
(
[asdf] => 한글인가요
)
시스템 LANG 설정은 UTF-8로 되어있습니다.
물론 생성한 파일도 UTF-8 문자셋의 파일명으로 되어있습니다.
제가 뭔가 잘못하고 있는거겠죠? 익스플로러 세팅에 문제가 있을까요?
서버 입장에서는
서버 입장에서는 받은 문자열이 url encode 되었던지 아니던지간에
utf-8 인지 euc-kr 인지 알 수 없습니다. 추측할 뿐이지요.
http://kldp.org/node/35160 보시면 아시겠지만, 명확한 해답은
없습니다.
그것이..
그것이 IE에서는 그렇고, 오페라나 파이어폭스에서는 정상적으로 동작을 합니다. 이상하게도 IE에서는 항상 UTF-8로 보낸다고 체크를 해도 ?의 오른쪽에 있는 것은 그것이 적용되지 않는가봅니다.
이제는 서명에 무엇을 써야하는지 생각해보자.
블로그: http://turtleforward.blogspot.com
댓글 달기