我有以下重写规则:
RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} !^www\.domain\.com
RewriteCond %{HTTP_HOST} !^static\.domain\.com
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]
出于开发目的,环境变量APP_ENV = development在vhosts.conf中设置
是否可以使用APP_ENV的值作为重写条件?即,我不希望在开发环境中重定向任何内容。
我试过以下,也许是无知的?
RewriteCond %{ENV:APP_ENV} !^development
由于
答案 0 :(得分:2)
无论出于何种原因,{/ 1>}(mod_env)在 mod_rewrite之后被应用,但是,mod_setenvif在之前被应用。这就是你需要的:
SetEnv
您的vhost文件中的。 SetEnvIf Request_URI ^ APPENV=development
在mod_rewrite已经应用之后才会设置值。
答案 1 :(得分:0)
您可以在.htaccess:
中定义您的环境变量SetEnvIf Host ^ APPENV=development
# then evaluate it in your rules further down
RewriteCond %{ENV:APPENV} !^development
RewriteCond %{HTTP_HOST} !^www\.domain\.com
RewriteCond %{HTTP_HOST} !^static\.domain\.com
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]