웹마스터 팁


이전에 한번 올렸던 팁인데 1.0으로 릴리즈되면서 제로보드에 중요한 변화가 생겨서 현재 작동되지 않는 문제가 있더군요. (그간 바빠서 느무느무 오랫만에 업그레이드 하였습니다. 1.0으로 하나씩 옮기면서 애드온 작동안되는 것들도 고쳐놓겠습니다. ;;; ㅈㅅ)

이전의 팁

위의 팁이 작동되지 않는 까닭은... 0.2.8까지는 제로보드에서 이미지나 CSS등을 전부 절대경로로 바꿔주는 과정이 마지막에 포함되었으나 0.2.9버전부터는 상대경로를 사용하게 되었습니다. 이 때문에 RewriteMod에서 단순히 참조되는 경로만 조정하는 것으로는 문서가 제대로 보여지지 않습니다. (레이아웃이 깨지고 모든 이미지가 깨집니다.)

그리하여...

RewriteEngine On
RewriteRule ^/$ ./zbxe/index.php?mid=blog [R,L]
RewriteRule ^$ ./zbxe/index.php?mid=blog [R,L]

사실은 위와 같이 해주는 것으로 대충 목적은 달성할 수 있습니다. 그러나 위와 같이 하면 주소표시줄의 사이트 주소가 변경되어 버리는 문제가 발생하므로 깔끔하게 해결되지는 못합니다.

그래서 골치를 썩다가 가장 나은 방법이라고 생각되는 코드를 올립니다. 더 좋은 RewriteMod 코드가 있다면 알려주시기 바랍니다.

1) htaccess 파일을 만듭니다.

2) 파일에 아래의 내용을 기입합니다.

RewriteEngine On
RewriteBase /

RewriteCond %{ENV:REDIRECT_SURI} ^$ [OR]
RewriteCond %{ENV:REDIRECT_SURI} ^/$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /bbs/$1 [R]

RewriteRule ^/$ /bbs/?mid=index [L]
RewriteRule ^$ /bbs/?mid=index [L]

단, 노란색 표시가 있는 것은 자신에 맞게 적당히 바꿔주셔야 합니다. bbs -> 자신의 제로보드 XE 디렉토리 경로, index -> 처음 보여질 모듈(페이지/게시판/블로그의 mid값.)

그리고 저장합니다.

3) 계정을 FTP로 접속합니다. 웹페이지가 놓이는 최상단 디렉토리로 들어가서 htaccess 파일을 업로드합니다.

4) 업로드한 htaccess 파일이름을 .htaccess로 고칩니다.

5) 테스트를 해봅니다.



유감스럽게도 아직 제 홈페이지는 업그레이드하지 못한 상태라서 보여드릴 수 있는 실제 작동 예는 보일 수 없습니다만... 테스트는 해보았으니 별 문제는 없을겁니다.

위의 룰이 최선의 방법은 아닙니다만 제로님이랑 이래저래 이야기 해봤는데 그나마 가장 나은 듯하네요. RewriteCond를 몇개 더 걸어서 더 엄격하게 검사할 수도 있긴 한데 괜히 정규식 파싱하는 것보단 이게 적절할 것 같습니다.



간단하게 위의 룰이 하는 일은 다음과 같습니다.

- 아울러 주소가 /인 경우에는 index 모듈로 자동 포워딩한다.
- 주소가 /에서 참조되는 파일은 해당 파일이 서버에 존재하지 않을 때에만 경로를 자동으로 bbs 하위로 변환한다. (이게 추가된 부분)

끗~

태그 연관 글
  1. [2015/01/08] 묻고답하기 .htaccess 에서 xe홀더를 루트로... by 컴박살 *2