텍스트큐브 1.6 을 Document Root 에 설치한 경우 Trace Watch 를 정상적으로 사용할 수 없습니다.
(/blog, /tc 등의 디렉토리에 설치한 경우라면 상관없습니다.)
TC 1.6 부터 mod_rewrite 관련해서 구조가 바뀌었기 때문이고, 정상적으로 사용을 하기 위해서는 .htaccess 파일을 수정해줘야합니다.
먼저 수정 방법부터 말쓰드리면,
.htaccess 파일을 열어서 아래에 bold 로 표시한 부분을 추가해주면 됩니다.
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_URI} !^/twatch(/*)
RewriteRule ^(.+[^/])$ $1/ [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/twatch(/*)
RewriteRule ^(.*)$ rewrite.php [L,QSA]
위에 추가한 RewriteCond 은 주소가 /twatch 또는 /twatch/ 인 경우 RewriteRule 을 적용하지 않게 해줍니다.
그럼, 왜 이렇게 해야하고 바뀐 구조가 무엇인지 살펴보겠습니다.
TC 1.6 부터는 mod_rewrite 모듈이 설치가 안된 웹서버에서도 사용이 가능하도록 구조의 변경이 있었다고 합니다.
( http://www.textcube.org/manual/entry/installing-textcube )
기존 버전에서는 URL Rewrite 를 .htaccess 파일에 장황하게 써있는 mod_rewrite 룰에서 처리했었는데
1.6 부터는 rewrite.php 라는 PHP 파일에서 담당하게 되고,
.htaccess 파일은 rewrite.php 로 넘겨주는 정도의 역할만 하고 있습니다.
(mod_rewrite 모듈을 사용하지 않을 경우 index.php 를 통해서 rewrite.php 로 넘어감.)
이런 구조 변경때문에 .htaccess 의 내용이 바뀌었고 텍스트큐브 안에 따로 만든 디렉토리로 바로 접근이 되지 않게되었습니다.
Trace Watch 의 경우도 따로 /twatch 등의 디렉토리를 생성해서 설치해야하기 때문에
텍스트큐브를 Document Root 에 설치한 경우에는 /twatch 로 바로 접근이 되지 않습니다.
(/twatch/index.php 로는 접근이 되지만 쏘스를 수정하지 않으면 정상적으로 사용이 불가능합니다.)
그래서 위에 쓴 것과 같이 .htaccess 파일을 수정해야 /twatch 로 바로 접근이 가능해집니다.
Trace Watch 뿐만 아니라 다른 프로그램 또는 페이지를 만든 경우에도 마찬가지로 적용가능합니다.
(물론 경우에 따라서 RewriteCond 을 바꿔야합니다.)
참고 URL
http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html : mod_rewrite Documentation
http://howto.textcube.org/entry/adding-rewrite-rule-in-htaccess : [TC1.6~] 변화된 rewrite 룰에 다른 파일 추가하기
http://forum.tattersite.com/ko/viewtopic.php?id=4397 : (질문) 이번에 beta2에서 htaccess가 수정되었는데요
※ 추가
Trace Watch 는 도아님의 플로그인으로 설치를 했었는데, 트랙백 전송이 되지않는 문제가 생겼습니다.
Trace Watch 플러그인을 켜놓을때만 트랙백 전송이 되지 않아서 원인을 찾아봤는데
/lib/auth.php 의 requireStrictRoute() 를 통과하지 못해서 'Precondition Failed' 에러가 나고 있었습니다.
통과 못한 이유는 $_SERVER['HTTP_REFERER'] 가 사라져버렸기 때문인데, 왜 사라졌는지 정확한 이유는 찾지 못했습니다.
그래서,
Trace Watch 를 플러그인으로 사용하지 않고 rewrite.php 제일 아래에 코드를 추가해서 일단은 사용가능하도록 해두었습니다.
Trace Watch 플러그인을 활성화시킬때 왜 referer 가 사라져버리는지... 궁금하네요...
'mod_rewrite'에 해당되는 글 1건
- 2008/03/14 Rewrite Rule 바뀐 Textcube 1.6 에서 Trace Watch 사용하기 (7)
도아 2008/03/15 09:42 # M/D Reply
테터툴즈 1.x부터 있던 문제입니다. 제가 트랙백으로 쏜 글을 보면 알 수 있습니다.
그런데 확인해 보니 트랙백이 두개씩 갔군요. 마지막은 하나가 가고,,, 블로거 뉴스에도 두개씩 가서 무슨 일인가 했는데,,, 확인해 봐야 할 것 같습니다. 그리고 두개씩 간 트랙백 중 하나는 불편하시겠지만 삭제 부탁드립니다.
April Briz 2008/03/15 21:34 # M/D
1.6 부터는 /twatch/ 로 해도 아예 접근 자체가 되지 않아서 .htaccess 파일을 수정해야 하긴합니다.
위에 추가한 2개의 RewriteCond 중에서 첫번째를 빼면 도아님이 말씀하신 것과 같은 문제가 발생하고,
두번째 것을 빼면 404 에러가 나옵니다...;;
그리고, 사실, 도아님께는 아래쪽 '추가'에 해당하는 부분을 말씀드리고 싶어서 트랙백을 걸었었는데,
태터툴즈 1.x 때부터 이런 문제가 있었던건 저도 이제야 알게됐네요. :)
(트랙백 2개씩 들어온건 지웠습니다~)
회색코끼리 2008/06/06 21:42 # M/D Reply
초보 블로거 입니다.
Tracewatch 설치했는데 http://graychang.com/twatch 로 접속하면 페이지가 안열려서 밤새 끙끙거렸는데, 알려주신 코드 2줄 삽입하니까 정상으로 됩니다. ^_^
감사합니다.
April Briz 2008/06/07 11:51 # M/D
잘 되신다니 다행이네요~ ^^;
회색코끼리 2008/06/09 15:10 # M/D Reply
텍스트큐브가 1.7.0 으로 업데이트 됬네요.=_=
업데이트 하고 코드를 다시 삽입하니까 안되네요.^^;;
그래서 1.6.3 때 백업해 놓은 .htaccess 파일을 사용하니까 되고...
당분간은 .htacess 파일은 1.7 버젼대 말고 예전 1.6 걸로 사용해야겠습니다.~
April Briz 2008/12/30 17:12 # M/D
... 6개월만의 답글입니다-_-;
오늘 1.7.6 을 업글 했고, 위 내용대로 수정하면 작동하지 않네요.
twatch 폴더에 .htaccess 파일을 만들고
RewriteEngine off
라고 한줄만 써주시면 정상적으로 작동합니다-
회색코끼리 2008/12/30 20:15 # M/D Reply
이렇게 답변까지 주시다니.ㅠㅅㅠ
제가 웹호스팅을 카페24에서 와우웹 으로 변경했습니다.
와우웹 에서는 TraceWatch 를 사용할수 없더라고요. 와우웹 서버 버젼이 너무 높답니다. ㅡ_ㅡ;;
그래서 http://soft.zoneo.net/phpTrafficA/ <- 이것을 사용해 보고 싶은데, 아직 사용법도 몰라서...
구글에서 사용법 검색하는데... 쪼끔 어렵더라고요.^^;;
흑... 6개월만의 답변 감사드립니다.ㅠㅅㅠ
새해 福 듬뿍듬뿍 받으세요.^-^