2012-05-23 3 views
18

호스트 이름에 따라 .htaccess 파일에서 SetEnv 변수를 다르게 설정할 수 있습니까? 상자를 준비에 ....htaccess의 조건부 SetEnv?

SetEnv PYRO_ENV stage 

생산 상자에

SetEnv PYRO_ENV production 

및 :

예를 들어, 나는 다음과 같은 값을 갖도록 내 .htaccess 파일이 필요합니다. .htaccess 파일은 버전 제어이므로 조건부 솔루션을 찾고 있습니다. mod_rewrite를 가진

답변

41

조건 설정의 경우는 SetEnvIf있다 : 굉장

SetEnvIf Host ^stage\.example\.com$ PYRO_ENV=stage 
SetEnvIf Host ^(www\.)?example\.com$ PYRO_ENV=production 
+0

Magento에도 유용합니다 :'SetEnvIf Host \ .de MAGE_RUN_CODE = de' (우리의 경우 내부와 외부 URL :'example.de'뿐만 아니라'example.de.testing.local') - 그래서 둘 다 작동합니다. – Alex

+0

이것은 가장 좋은 답변입니다. – Dmitri

22

당신은 할 수 있습니다 :

RewriteEngine on 

RewriteCond %{HTTP_HOST} ^stage\.domain\.com$ 
RewriteRule (.*) $1 [E=PYRO_ENV:stage] 

RewriteCond %{HTTP_HOST} ^www\.domain\.com$ 
RewriteRule (.*) $1 [E=PYRO_ENV:production] 
+3

. 고맙습니다! 미래에이 대답을 접할 수있는 다른 사람들을 위해 환경 변수 설정에 대한 자세한 설명서가 있습니다. [ModRewrite Flags Env] (http://httpd.apache.org/docs/2.2/rewrite/flags.html#flag_e) 및 [Apache의 환경 변수] (http://httpd.apache.org/docs/2.2/env.html) –

+0

downvoter : 설명해 주시겠습니까? – lanzz