안녕하세요. 404때문에 질문하려합니다.
XE는 한글로 쳤을 때와 영어로 쳤을 때 404가 서로 다르더군요.
즉, http://도메인/asdf 하고 http://도메인/ㅁㄴㅇㄹ 이렇게 쳤을 때 404 페이지가 다르게 나온다는 겁니다. xe town에서도 테스트해봤는데 여기도 404가 한글일 때와 영어일때가 다르더군요.
본론으로 들어가서, 제가 404 페이지를 직접 만들어서 .httaccess 맨 밑에 ErrorDocument 404 /(404 index파일이 담긴 디렉토리)/ 이렇게 해줬는데 한글로 쳤을 때는 정상적으로 만들어진 디렉토리에 있는 index.html이 띄워지는데 영어로 치면 기존 xe 레이아웃 내부에서 설정된 404페이지가 나오네요. 영어로 쳤을 때도 한글처럼 해당 디렉토리에 있는 index가 띄워지게 설정하는 법 있을까요?
추가) 실례지만, 프레임 사용은 사양하겠습니다. php include 또한 이미 xe - modules - message - skins - 사용중인 스킨 - http_status_code.html에서 수정해본 결과 내용이 짤려서 출력됩니다.
도메인/asdf 이렇게 영어로 입력하면 mod_rewrite가 모듈명(mid)으로 인식하고 XE에게 넘겨주기 때문에 XE에서 에러페이지를 출력하고요, 한글은 모듈명(mid)이 될 수 없기 때문에 XE에게 넘겨주지 않고 웹서버(아파치/nginx) 자체에서 에러페이지를 출력합니다. 디자인이 달라지는 게 당연하지요.
이미 시도해 보신 것처럼, 웹서버에서 출력하는 404 에러 페이지를 커스터마이징하기는 쉽습니다. XE의 에러 페이지를 커스터마이징하기는 좀더 어렵죠. 따라서 먼저 XE의 에러 페이지를 원하는 대로 커스터마이징하신 후, 그렇게 출력되는 HTML 소스를 복사해서 별도의 파일에 저장하여 웹서버에서 ErrorDocument로 사용하는 것이 좋습니다.
ErrorDocument 404 /index.php?mid=blablabla 이렇게 존재하지 않는 mid를 넣어서 XE에게 넘겨주면 웹서버의 404 에러페이지도 모두 XE가 처리하도록 만들 수 있지만, 404 에러가 발생할 때마다 XE를 실행하게 되므로 서버 부하는 다소 높아집니다.