2012-05-23 36 views
18

Bir SetEnv değişkeni .htaccess dosyasında, ana makine adına bağlı olarak farklı bir şekilde ayarlamak mümkün müdür? kutuları evreleme On ...Koşullu SetEnv in .htaccess?

SetEnv PYRO_ENV stage 

üretim kutuları üzerinde

SetEnv PYRO_ENV production 

ve:

Örneğin, şu değere sahip benim .htaccess dosyasına ihtiyacım var. .htaccess dosya sürüm kontrollü olup, koşullu bir çözüm aramamın nedeni budur. mod_rewrite ile

cevap

41

koşullu ayarlar için SetEnvIf vardır: müthiş

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

Magento için de çok kullanışlıdır: 'SetEnvIf Host \ .de MAGE_RUN_CODE = de' (bizim durumumuzda iç ve dış URL'lerimiz var:' example.de' yanı sıra example.de.testing.local') - yani bu her ikisi için çalışır. – Alex

+0

Bu en iyi cevaptır. – Dmitri

22

Yapabilirsin,:

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

. Teşekkür ederim! Gelecekte bu cevaba rastlayabilecek diğer kişiler için, burada ortam değişkenlerinin ayarlanması hakkında daha fazla belge bulunabilir: [ModRewrite Flags Env] (http://httpd.apache.org/docs/2.2/rewrite/flags.html#flag_e) ve [Apache'de Ortam Değişkenleri] (http://httpd.apache.org/docs/2.2/env.html) –

+0

Downvoter için: açıklamak ister misiniz? – lanzz