2014-04-19 2 views
3

자습서에서 REST API를 만드는 방법을 배우고 있습니다. 튜토리얼에서 URL 재 작성을 수행하는 한 단계가있었습니다.htaccess 다시 쓰기 조건 및 변수 설명의 URL 다시 쓰기

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ %{ENV:BASE}index.php [QSA,L] 

사람이 재 작성 조건과의 %{ENV:BASE} 부분을 설명해 주시겠습니까 다음과 같이 코드는?

+0

'% {ENV : BASE}'는 규칙 자체 중 하나에 의해 정의되었을 것입니다. – anubhava

답변

2

조건은 간단하다 : 요청 URI는 기존의 파일을 표시하지 않는 경우 ${ENV:BASE}index.php로 리디렉션

.

RewriteRule 플래그 here에 대한 설명을 찾을 수 있습니다. 간단히 말하면 :

QSA은 "query string append"의 약자입니다. 즉, 쿼리 문자열이 대체 URI에 추가됩니다.

L은 마지막 규칙이므로 추가 규칙이 처리되지 않습니다.

은 % {ENV : 변수} TestString에의 형태로 mod_rewrite의 재 작성 엔진이 환경 변수에 따라 다르게 행동 할 수 있도록한다 RewriteCond에 this page

은 htaccess로에서 환경 변수에 대한 좋은 설명이있다. ENV : 접두어없이 mod_rewrite에서 액세스 할 수있는 변수는 실제로 환경 변수가 아닙니다. 오히려, 다른 모듈에서 액세스 할 수없는 mod_rewrite에 특별한 변수입니다.

그래서, 다음과 같이 규칙에서 환경 변수를 사용할 수 있습니다. ${ENV:<name>}. 물론 변수를 일찍 설정해야합니다.

0

${ENV:<name>}은 반복 코딩을 피하기 위해 사용됩니다. 일부 조건은 변수로 저장되어 RewriteRules에서 사용될 수 있습니다. 자세한 내용은 this question을 참조하십시오.