我正在通过php函数设置一个apache环境变量,apache_setenv。
apache_setenv("EXAMPLE_VAR", "Example Value");
但是我在内部访问此变量时遇到问题.htaccess
无论如何我都无法在 .htaccess 中使用这个 env 变量。 但我可以通过 phpgetenv()
访问它。
问题不仅在于通过 php 设置变量,我无法访问.htaccess
本身设置的环境变量。
我试过了
假设 env 变量www.domain.com
。
RewriteEngine On
RewriteCond ^(.*)$ test.php?id=%{ENV:VARIABLE} [L]
&
RewriteEngine On
RewriteCond %{ENV:VARIABLE} ^www.(.+)
RewriteRule ^ test.php?id=%1 [L]
和类似的其他测试,只是验证环境变量是否设置并正常运行。
Mod_env和mod_rewrite已开启。
由于Apache 加载模块的顺序,mod_rewrite
看不到使用SetEnv
指令设置的变量。请改用SetEnvIf
,如下所示:
SetEnvIf Host ^ VAR=/foo/bin
然后在mod_rewrite
规则中使用它:
RewriteEngine On
RewriteCond %{ENV:VAR} =/foo/bin
RewriteRule ^home/?$ /something [L,NC]