2009-09-02 2 views
4

나는 내 .htaccess 파일에 다음과 같습니다아파치한다 SetEnvIf 문제

지금까지 내가 말할 수있는
SetEnvIf Host "^example\.com$" myvar=1 
<IfDefine myvar> 
    RewriteRule ^(.*)$ index2.php?q=$1 [L,QSA] 
</IfDefine> 

이 제대로 작동해야합니다. 그러나 "myvar"는 example.com에서 방문 할 때 정의되지 않습니다. 내가 mod_setenvif.c을 사용할 수 있음을 알고 있습니다 (나는 < IfModule> 블록으로 확인했습니다).

"myvar"가 정의되지 않는 이유는 무엇입니까?

답변

6

이것은 실제로 ServerFault 질문이지만 어쨌든 IfDefine은 환경 변수를 테스트하지 않으며 시작할 때 Apache에 전달 된 구성 옵션을 테스트합니다. 그래서 예를 들어, 당신은 다음

<IfDefine MYVAR> 
    ... 
</IfDefine> 

이 실행 얻을 것이다 섹션을

apache2 -D MYVAR 

을 달렸다.

찾고있는 것처럼 환경 변수에 대한 조건부 역할을하는 Apache 구성 지시어가 있는지 확실하지 않습니다.

+0

그래서'SetEnvIf'로 변수를 테스트 할 방법이 있습니까? –

+0

'RewriteCond'를 사용하여 환경 변수의 값에 의존하는 재 작성 조건을 만들 수 있습니다 ... 그 외에는 환경 변수를 사용하는 다른 지시어가 있는지 확실하지 않습니다. 주로 CGI 스크립트 등입니다. –