.htaccess中的条件SetEnv?

Hig*_*ife 21 apache .htaccess setenv pyrocms

是否可以根据主机名在.htaccess文件中设置不同的SetEnv变量?

例如,我需要我的.htaccess文件具有以下值:

SetEnv PYRO_ENV production
Run Code Online (Sandbox Code Playgroud)

在生产箱上,......

SetEnv PYRO_ENV stage
Run Code Online (Sandbox Code Playgroud)

在分期盒子上.该.htaccess文件受版本控制,这就是我正在寻找条件解决方案的原因.

Fab*_*ler 49

对于条件设置,有SetEnvIf:

SetEnvIf Host ^stage\.example\.com$ PYRO_ENV=stage
SetEnvIf Host ^(www\.)?example\.com$ PYRO_ENV=production
Run Code Online (Sandbox Code Playgroud)


lan*_*nzz 25

你可以用mod_rewrite:

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]
Run Code Online (Sandbox Code Playgroud)

  • 太棒了.谢谢!对于将来可能会遇到此答案的其他人,可以在此处找到有关设置环境变量的更多文档:[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) (3认同)