在PHP中,测试是否定义了Apache变量(与.htaccess中的IfDefine相同)
如何从PHP测试是否定义了Apache变量?在在PHP中,测试是否定义了Apache变量(与.htaccess中的IfDefine相同),php,apache,.htaccess,variables,environment-variables,Php,Apache,.htaccess,Variables,Environment Variables,如何从PHP测试是否定义了Apache变量?在.htaccess中,使用IfDefine进行测试 启动Apache时,我定义了一个变量:在Windows中使用 httpd.exe -D "MYVARIABLE" -w -n "Apache2.2" -k start 在Ubuntu中添加到/etc/apache2/envvars: export APACHE_ARGUMENTS='-D MYVARIABLE' 现在我可以在.htaccess中使用它 <IfDefine MYVARIABL
.htaccess
中,使用IfDefine进行测试
启动Apache时,我定义了一个变量:在Windows中使用
httpd.exe -D "MYVARIABLE" -w -n "Apache2.2" -k start
在Ubuntu中添加到/etc/apache2/envvars
:
export APACHE_ARGUMENTS='-D MYVARIABLE'
现在我可以在.htaccess
中使用它
<IfDefine MYVARIABLE>
do stuff
</IfDefine>
export APACHE_ARGUMENTS='-D MYVARIABLE'
但它总是返回FALSE
phpinfo ();
打印很多内容,但在其输出中没有字符串
MYVARIABLE
。多亏了mario的评论,我认为答案是:
- 在Windows上,如果将变量设置为命令行参数,则可能无法使用,例如
httpd.exe -D "MYVARIABLE" -w -n "Apache2.2" -k start
- 在Linux/Ubuntu上,如果在
中设置为/etc/apache2/envvars
<IfDefine MYVARIABLE> do stuff </IfDefine>
然后从PHPexport APACHE_ARGUMENTS='-D MYVARIABLE'
给出$x = getenv ('APACHE_ARGUMENTS')
,从中可以使用-D MYVARIABLE
或其他方法查找变量strstr($x,'MYVARIABLE')
-D
)不会隐式成为环境变量。使用/etc/apache2/envvars
或SetEnv
进行此操作。