如何将 Apache 环境变量传递给 .htaccess 中的 url



我正在通过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]

最新更新