웹마스터 팁

아래는 제가 블로그에 작성한 내용을 붙여 넣은 것입니다.
원본은 http://skyfac.com/133 에서 확인하실 수 있습니다.
--------------------------------------------------------

얼마 전 와우웹 호스팅에서 계정을 구입했다. 초등교사를 위한 메타 블로그(http://lounge.luvda.com) 를 운영하기 위함이었는데 나중에 학급 홈페이지 및 커뮤니티 사이트를 개설할 것도 염두에 두었기 때문에 xe도 설치하기로 결정했다. 제로보드4 이후로 제로보드는 사용해 본 적이 없어서 다소 낯설기는 했지만 설치에 큰 어려움은 없었다.

  그런데 설치 후 404 에러가 계속 해서 발생했다. 영문을 몰라 몇번이고 재설치를 해 보았지만 문제는 계속해서 발생했다. rewrite.php 파일을 찾을 수 없다는 메세지가 계속해서 출력되었다. 며칠동안 끌었던 이문제를 드디어 오늘 해결하게 되었다.

  문제는 설치에서 비롯되었다. xe 홈페이지에서 tar.gz 파일을 받은 후 계정에 설치하고 압축을 풀면 저절로 xe라는 폴더를 생성하고 그 안에 프로그램이 설치된다. 그런데 나는 '도메인/xe'보다는 '+ '+ '도메인'으로 바로 사용하고 싶었기 때문에 xe폴더 안에 풀어진 파일들을 모두 상위 폴더로 옮겨 놓았다. 물론 접속은 되었는데 rewrite mod을 사용할 수 없었다. 하지만 숨겨진 파일인 .htaccess는 복사되지 않았는데 바로 이 때문에 계속해서 404에러가 발생했던 것이다.

  따라서 같은 문제로 고생하고 있는 사용자가 있다면 xe 폴더 안에 있는 .htaccess 파일을 상위 폴더로 복사해 줌으로써 간단히 해결할 수 있다.


.htaccess 내용
RewriteEngine On

# image...
RewriteRule ^(.+)/files/attach/images/(.*) ./files/attach/images/$2 [L]
RewriteRule ^(.+)/files/attach/menu_button/(.*) ./files/attach/menu_button/$2 [L]
RewriteRule ^(.+)/files/member_extra_info/(.*) ./files/member_extra_info/$2 [L]
RewriteRule ^(.+)/files/cache/(.*) ./files/cache/$2 [L]
RewriteRule ^(.+)/modules/(.*) ./modules/$2 [L]
RewriteRule ^(.+)/common/css/(.*) ./common/css/$2 [L]
RewriteRule ^(.+)/common/js/(.*) ./common/js/$2 [L]
RewriteRule ^(.+)/common/tpl/(.*) ./common/tpl/$2 [L]
RewriteRule ^(.+)/widgets/(.*) ./widgets/$2 [L]
RewriteRule ^(.+)/layouts/(.*) ./layouts/$2 [L]
RewriteRule ^(.+)/addons/(.*) ./addons/$2 [L]

# page
RewriteRule ^([a-zA-Z0-9_]+)/([[:digit:]]+)page$ ./index.php?mid=$1&page=$2 [L]

# total rss
RewriteRule ^rss/([[:digit:]]+){0,14}/([[:digit:]]+){0,14}/([[:digit:]]+)$ ./index.php?module=rss&act=rss&start_date=$1&end_date=$2&page=$3 [L]
RewriteRule ^rss/([[:digit:]]+)$ ./index.php?module=rss&act=rss&page=$1 [L]
RewriteRule ^rss$ ./index.php?module=rss&act=rss [L]
RewriteRule ^atom/([[:digit:]]+){0,14}/([[:digit:]]+){0,14}/([[:digit:]]+)$ ./index.php?module=rss&act=atom&start_date=$1&end_date=$2&page=$3 [L]
RewriteRule ^atom/([[:digit:]]+)$ ./index.php?module=rss&act=atom&page=$1 [L]
RewriteRule ^atom$ ./index.php?module=rss&act=atom [L]

# administrator page
RewriteRule ^admin/?$ ./index.php?module=admin [L]

# mid + act
RewriteRule ^([a-zA-Z0-9_]+)/api$ ./index.php?mid=$1&act=api [L]

# document permanent link
RewriteRule ^([[:digit:]]+)$ ./index.php?document_srl=$1 [L]

# document + act link
RewriteRule ^([[:digit:]]+)/([a-zA-Z0-9_]+)$ ./index.php?document_srl=$1&act=$2 [L]

# document + key + act link
RewriteRule ^([[:digit:]]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)$ ./index.php?document_srl=$1&act=$3&key=$2 [L]

# mid + document link
RewriteRule ^([a-zA-Z0-9_]+)/([[:digit:]]+)$ ./index.php?mid=$1&document_srl=$2 [L]

# mid + act link
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)$ ./index.php?mid=$1&act=$2 [L]

# mid + page link
RewriteRule ^([a-zA-Z0-9_]+)/page/([[:digit:]]+)$ ./index.php?mid=$1&page=$2 [L]

# mid + entry title
RewriteRule ^([a-zA-Z0-9_]+)/entry/(.+)$ ./index.php?mid=$1&entry=$2 [L]

# mid + category link
RewriteRule ^([a-zA-Z0-9_]+)/category/([[:digit:]]+)$ ./index.php?mid=$1&category=$2 [L]

# mid + act + document_Srl
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z])([a-zA-Z0-9_]+)/([[:digit:]]+)$ ./index.php?mid=$1&document_srl=$4&act=$2$3 [L]

# mid + document_Srl + page
RewriteRule ^([a-zA-Z0-9_]+)/([[:digit:]]+)/page/([[:digit:]]+)$ ./index.php?mid=$1&document_srl=$2&page=$3 [L]

# mid + category + page
RewriteRule ^([a-zA-Z0-9_]+)/category/([[:digit:]]+)/page/([[:digit:]]+)$ ./index.php?mid=$1&category=$2&page=$3 [L]

# mid + search target regdate (year+month)
RewriteRule ^([a-zA-Z0-9_]+)/([[:digit:]]+)/([[:digit:]]+)$ ./index.php?mid=$1&search_target=regdate&search_keyword=$2$3 [L]

# mid + search target regdate (year+month+day)
RewriteRule ^([a-zA-Z0-9_]+)/([[:digit:]]+)/([[:digit:]]+)/([[:digit:]]+)$ ./index.php?mid=$1&search_target=regdate&search_keyword=$2$3$4 [L]

# mid + search target tag
RewriteRule ^([a-zA-Z0-9_]+)/tag/(.*)$ ./index.php?mid=$1&search_target=tag&search_keyword=$2 [L]

# mid + search target writer
RewriteRule ^([a-zA-Z0-9_]+)/writer/(.*)$ ./index.php?mid=$1&search_target=nick_name&search_keyword=$2 [L]

# mid + document_Srl + page + act
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([[:digit:]]+)/page/([[:digit:]]+)$ ./index.php?mid=$1&document_srl=$3&page=$4&act=$2 [L]

# module link
RewriteRule ^([a-zA-Z0-9_]+)(/){0,1}$ ./index.php?mid=$1 [L]

제목 글쓴이 날짜
XE 트위터 모임 해쉬태그 " #XE당_" 로 더 가까워집시다! [3] DJinside 2010.06.24
위젯 제목부분을 클릭 했을 때 해당 게시판으로 링크하기 file 화이트서리 2010.06.27
xe_layout 을 자신의 웹 첫화면과 연결 [2] justrue 2007.08.29
관리자id , 닉네임, e-mail주소, 바꾸기, 최고관리자권한 없애기 [3] 유병철 2010.06.18
회원가입 생일 필수로 입력받고, 관리자페이지 회원목록에 회원생일 출력하기 [10] 대암지기 2008.02.11
외부페이지 접근을 제로보드XE를 통해서만 접근을 허용 하고 싶다면 [9] 임기택924 2008.06.03
무료 채팅 프로그램인데 꽤 유용하네요.. (xe와 닉네임 연동(넨네님 추가) [8] 리우  2009.07.10
여러 서버에서 하나의 회원목록 관리&사용 [24] 화니군 2008.01.04
1.4.2 버전 업데이트 이후 발생하는 문제들과 대응 [10] Gekkou 2010.05.18
IE의 특정 도메인 인터넷 임시 파일 Cache만 삭제하기 [3] NetEagle 2008.10.22
로그인 후 그룹별로 다른 페이지로 가기 - 업데이트판 v1.5 [19] 무대포2 2009.06.24
xe_official_v2 xe공식레이아웃v2 관리자메뉴 나타나게 하기. [11] Habile 2009.07.24
레이아웃 삽입 후 최근 설문조사 가져오기 ilovesyr 2010.05.18
XE 로그인이 안될때 확인해 보세요. [7] 똑디 2008.12.11
MySQL 설치 file 김 무건 2010.05.12
conditional comment 을 이용한MS Internet Explorer 6이하 접속시 안내 페이지 유도 [접속 차단] 예제 [3] file 게임나라 2010.02.26
호스팅업체에서 rewrite mod를 지원하는데 사용할 수 없는 경우 [1] [1] 엔하늘 2009.04.05
외부로그인-특정 페이지에 로그인창만 나타나게 하고 로그인하면 메인페이지로 이동하기 [11] 레드맨 2008.01.02
.htaccess 세팅 (index.html 없이 리다이렉션 구현) [2] :맥노턴 2008.01.04
VirtualPC로 IE6.0, IE7.0을 동시에 사용해서 홈피테스트하기 [2] file D.kim 2008.01.13