본문 바로가기

태터툴즈&인터넷

[팁] 태터 1.0.2에서 path식별 다중사용자 모드시 .htaccess 설정 변경하기

관련 포스팅은 http://platina.byus.net/cirrus/734 을 참고해 주시고...

태터 1.0.2에서 path식별 다중사용자 모드시 최상위 디렉토리에 태터를 설치하면 문제가 생깁니다.
예를 들자면 http://aaa.com 이라는 계정에 최상위 디렉토리에 태터를 path 식별 다중사용자 모드로 세팅을 하면 http://aaa.com/bbb/index.php 와 같이 최상위 디렉토리에서 하위 디렉토리의 index.php 파일을 못읽어오는 문제가 있고,

기존의 클래식의 퍼머링크 주소 체계인 index.php?pl=글넘버 (예를 들자면 http://platina.byus.net/cirrus/index.php?pl=734 )와 태터 1.0.X 의 /글넘버(http://platina.byus.net/cirrus/734 ) 와 호환이 되지 않는 두가지 문제가 있습니다.

파파챠님과 상의를 해본결과 path식별 다중사용자 모드시 .htaccess 설정에 버그가 있습니다.
파파챠님 말씀에 따르면 13번째 줄인 RewriteRule ^[[:alnum:]]+/+index\.php$ %2 [NE,L] 을 RewriteRule ^([[:alnum:]]+)/+index\.php$ $1/%2 [NE,L] 으로 수정하라는데 수정만 해서는 안되고 제가 테스트 하기로는 이 줄을 마지막으로 옮겨야지 제대로 됩니다.

그러니까 최상위 디렉토리에 태터를 설치하고 path식별 다중 사용자 모드로 세팅을 하면 .htaccess 내용을 아래와 같이 수정하였습니다.

[기존의 .htaccess]
RewriteEngine On
RewriteBase /
RewriteCond %{ENV:REDIRECT_SURI} !^$
RewriteRule (.*) - [L]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+[^/])$ $1/ [L]
RewriteRule ^$ blog/index.php [E=SURI:1,L]
RewriteRule ^[[:alnum:]]+/*$ blog/index.php [E=SURI:1,L]
RewriteRule ^[[:alnum:]]+/+[0-9]+$ blog/item.php [E=SURI:1,L]
RewriteRule ^[[:alnum:]]+/+favicon\.ico$ blog/favicon.ico.php [E=SURI:1,L]
RewriteRule ^[[:alnum:]]+/+index\.gif$ blog/index.gif.php [E=SURI:1,L]
RewriteCond %{QUERY_STRING} (^|&)pl=([0-9]+)
RewriteRule ^[[:alnum:]]+/+index\.php$ %2 [NE,L]
RewriteRule ^[[:alnum:]]+/+index\.php$ blog/index.php [E=SURI:1,L]
RewriteRule ^[[:alnum:]]+/+index\.xml$ blog/rss/index.php [E=SURI:1,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule !^(blog|cache)/ - [L]      
RewriteRule ^[[:alnum:]]+/+(entry|attachment|category|keylog|tag|search|plugin)/? blog/$1/index.php [E=SURI:1,L]
RewriteRule ^[[:alnum:]]+/+(.+)/[0-9]+$ blog/$1/item.php [E=SURI:1,L]
RewriteRule ^[[:alnum:]]+/+(.+)$ blog/$1/index.php [E=SURI:1,L]



[수정된 .htaccess]
RewriteEngine On
RewriteBase /
RewriteCond %{ENV:REDIRECT_SURI} !^$
RewriteRule (.*) - [L]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+[^/])$ $1/ [L]
RewriteRule ^$ blog/index.php [E=SURI:1,L]
RewriteRule ^[[:alnum:]]+/*$ blog/index.php [E=SURI:1,L]
RewriteRule ^[[:alnum:]]+/+[0-9]+$ blog/item.php [E=SURI:1,L]
RewriteRule ^[[:alnum:]]+/+favicon\.ico$ blog/favicon.ico.php [E=SURI:1,L]
RewriteRule ^[[:alnum:]]+/+index\.gif$ blog/index.gif.php [E=SURI:1,L]
RewriteCond %{QUERY_STRING} (^|&)pl=([0-9]+)
RewriteRule ^[[:alnum:]]+/+index\.php$ blog/index.php [E=SURI:1,L]
RewriteRule ^[[:alnum:]]+/+index\.xml$ blog/rss/index.php [E=SURI:1,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule !^(blog|cache)/ - [L]      
RewriteRule ^[[:alnum:]]+/+(entry|attachment|category|keylog|tag|search|plugin)/? blog/$1/index.php [E=SURI:1,L]
RewriteRule ^[[:alnum:]]+/+(.+)/[0-9]+$ blog/$1/item.php [E=SURI:1,L]
RewriteRule ^[[:alnum:]]+/+(.+)$ blog/$1/index.php [E=SURI:1,L]
RewriteRule ^([[:alnum:]]+)/+index\.php$ $1/%2 [NE,L]

보시다시피 13번째 줄을 고쳐서 마지막으로 옮긴 거 밖에 없습니다.


이 문제는 최상위 디렉토리에 태터를 설치하시고 path식별 다중사용자 모드를 사용하고, 그리고 계정에 태터만 굴리시는 게 아니고 다른 통계 프로그램이나 게시판을 사용중인데 제대로 작동이 안되면 위와 같이 임시로 땜빵을 하시면 되겠습니다.

태터만 굴리신다고 하면 위와 같이 수정할 필요는 없습니다.




이건 임시 땜빵용이고 버그 퇴치는 곧 파파챠님께서 (어떻게든) 해결해 주실거라 믿습니다. ^^