在Apache中,SetEnv存在一些容易被忽略的问题

以下的情况与预期不符。

SetEnv hogehoge

Order allow,deny
Allow from env=hogehoge

由于SetEnv设置的”hogehoge”无法在随后的Allow指令中被引用,所以这样做。
然而,以下操作按预期工作。

SetEnvIf Request_URI ".*" hogehoge

Order allow,deny
Allow from env=hogehoge

SetEnv和SetEnvIf在可以访问设置的变量的位置上存在差异。
前者不能从紧随其后的Allow指令中进行引用,而后者可以。
不知道是一个错误还是一个规范,但感觉不舒服。

以下的網站可以參考,了解設置環境變量和訪問該環境變量之間的關係:
https://turboflash.wordpress.com/2010/05/27/apache-environment-variables-visibility-with-setenv-setenvif-and-rewriterule-directives/

广告
将在 10 秒后关闭
bannerAds