2010-07-24 3 views
0

.htaccess mod_rewrite에 전체/절대 경로 디렉토리 (예 : /usr/home/public_html/x)를 참조 할 수 있습니까?htaccess 전체 경로 디렉토리를 참조하는 mod_rewrite

(공용 폴더의 public_html에 저장되어있는) 하위 도메인의 .htaccess에 다음과 같이 입력하는 가장 분명한 경우를 시도해 보았습니다. 디렉토리 : 작동하지 않습니다

RewriteEngine on RewriteRule /xochotl /usr/home/public_html/x.php

... 난 메인으로 public_html 디렉토리에 htaccess로 단순히 다음을 가지고

500 내부 서버 오류를 얻을, 그것은 상대와 함께 작동 디렉토리 ...

,

RewritEngine on RewriteRule /xochotl x.php

답변

1

당 디렉토리 맥락에서 mod_rewrite를 사용할 때 (.htaccess를 사용하여, 즉)는 파일 경로에 매핑 할 수 없습니다. 그러나 서버 당 컨텍스트 (주 서버 또는 가상 서버 구성의 httpd.conf)에 규칙을 배치 할 때 절대 경로에 매핑 할 수 있어야합니다.

mod_rewrite이 디렉토리 별 컨텍스트에서 작동하는 이유 때문입니다. mod_rewrite은 URL을 변형 한 다음 자신을 요청 처리기로 지정합니다. 이것은 아파치를 통해 내부 리다이렉트를 보낼 수있게 해준다. 그렇지 않으면 늦게 처리가 불가능할 것이다.

내부 리디렉션은 Apache API 함수 ap_internal_redirect을 호출하여 수행됩니다.이 URI는 파일 시스템에 다시 매핑됩니다. 부수적으로 이는 후속 요청을 위해 동일한 .htaccess 파일을 읽는 것과 관련된 리디렉션을 수행 할 때 %{REQUEST_URI}%{REQUEST_FILENAME}이 변경되는 이유입니다 (예 : .htaccess이 사이트 루트에있는 경우).

관련 문제