1

주제: .htaccess 에 대한 설명좀 해주세요..

.htaccess 의 RewriteRule 가 정규표현식을 사용하는것 같은데.

1. RewriteCond %{ENV:REDIRECT_SURI} 는 어떤 상태를 의미하는것인가요.

2. RewriteRule (.*) - [L]    에서   - 가 무엇을 뜻하는지요?

3. RewriteCond  %{REQUEST_FILENAME} -d  와  -f 가 있는데  에서 REQUEST_FILENAME 과 -d , -f 옵션의 의미는 무엇인가요.

4. RewriteRule 의 뒤에  [NE] 는 무슨뜻인지요?

이곳의 글 검색도 .htaccess 로 해도 안나와서 문의드립니다. 

.htaccess 의 호출하는 파일의 제어가 제겐 신선한 충격으로 다가왔습니다.. 한동안은 이것때문에 잠을 설칠것 같네요.

dikafryo (2007-02-04 00:44:13)에 의해 마지막으로 수정

~

2

답글: .htaccess 에 대한 설명좀 해주세요..

http://httpd.apache.org/docs/2.0/misc/rewriteguide.html
http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html

이 두 문서를 참조하시면 알 수 있을 겁니다.

문제의 답은 우리 안에 있다.
내면에 귀를 기울여 보자.

3

답글: .htaccess 에 대한 설명좀 해주세요..

Ikaris C. Faust 작성:

제가 써놓았는데 질문을 바꾸셨군요;;;
곤란합니다;;;

아 죄송합니다. 님께서 답변하신 내용에 대한 질문도 위에 남겨 두었습니다만.. ^^;  [L] 은.. 거기서 종료 한다는 구문. 

제 질문이 너무 무성의한것 같아서.. 성의껏 다시 쓴다고.. 했는데 죄송합니다 ㅠㅠ

~

4

답글: .htaccess 에 대한 설명좀 해주세요..

dikafryo 작성:

.htaccess 의 RewriteRule 가 정규표현식을 사용하는것 같은데.

1. RewriteCond %{ENV:REDIRECT_SURI} 는 어떤 상태를 의미하는것인가요.

SURI 처리가 완료되었는지 환경 변수를 통해 확인하는 if statement 같은 역할을 합니다.
rewrite는 변경된 url에 대해 다시 .htaccess를 처리하므로 내부적인 처리가 끝났다고 SURI 환경 변수를 설정하고 이를 확인하는 것입니다.

dikafryo 작성:

2. RewriteRule (.*) - [L]    에서   - 가 무엇을 뜻하는지요?

상위 rule에 해당되지 않은 나머지(.*)는 그대-로 처리완료L한다.

dikafryo 작성:

3. RewriteCond  %{REQUEST_FILENAME} -d  와  -f 가 있는데  에서 REQUEST_FILENAME 과 -d , -f 옵션의 의미는 무엇인가요.

-f: REQUEST_FILENAME이 나타내는 regular file이 존재하는가?
-d: REQUEST_FILENAME이 나타내는 directory가 존재하는가?

dikafryo 작성:

4. RewriteRule 의 뒤에  [NE] 는 무슨뜻인지요?

no URI escaping of output, 이미 escape했으니 rewrite가 다시 escape하지 말아라.

dikafryo 작성:

이곳의 글 검색도 .htaccess 로 해도 안나와서 문의드립니다. 

.htaccess 의 호출하는 파일의 제어가 제겐 신선한 충격으로 다가왔습니다.. 한동안은 이것때문에 잠을 설칠것 같네요.

잠이 보약입니다! smile

PAPACHA (2007-02-05 10:14:22)에 의해 마지막으로 수정

5

답글: .htaccess 에 대한 설명좀 해주세요..

태터툴즈 소스를 수정하다가 궁금한 점이 있어 문의드립니다.
제가 지금 테스트하고 있는 환경은 다중사용자 모드 path 방식입니다.
.htaccess 파일은 이렇게 되어있구요.

#<IfModule mod_url.c>
#CheckURL Off
#</ifModule>
RewriteEngine On
RewriteBase /blogs/
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 ^favicon\.ico$ blog/favicon.ico.php [E=SURI:1,L]
RewriteRule ^[[:alnum:]]+/+favicon\.ico$ blog/favicon.ico.php [E=SURI:1,L]
RewriteRule ^index\.gif$ blog/index.gif.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$ $1/%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:]]+/+(thumbnail)/([0-9]+/.+) cache/$1/$2 [E=SURI:1,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]

예를 들어 블로그가 설치된 주소가 www.mydomain.com/blogs 라고 하고 사용자 a, b가 있을때
www.mydomain.com/blogs/tag 이렇게 연결하면 전체 사용자의 태그 목록이 나오고 (lint/tag/index.php)
www.mydomain.com/blogs/a/tag 이런 경우에는 해당하는 사용자의 태그들만 나오도록 (blog/tag/index.php)
하고 싶은데 RewriteRule을 어떤 식으로 지정해야 할지 몰라서 여기저기 고쳐봤지만 잘 안되네요 T.T
혹시 해결방법이 있다면 답변 부탁 드리겠습니다~
감사합니다!

6

답글: .htaccess 에 대한 설명좀 해주세요..

corgan님 // http://forum.tattersite.com/ko/viewtopic.php?id=2869 에서 보고된 버그로 태터툴즈 자체 수정이 필요한 사항인듯 싶습니다.