我想知道是否可以使用带有if语句的环境变量(或类似)来打开和关闭某些内容,例如display_errors,modpagespeed。
例如:
SetEnv DISPLAY_ERRORS on
<If "DISPLAY_ERRORS == on">
php_flag display_errors on
</If>
<If "DISPLAY_ERRORS == off">
php_flag display_errors off
</If>
我花了很长时间寻找这样的东西,但我无法发现任何这样做的东西。这甚至可能吗?
我正在寻找一种使用PHP编辑htaccess的简单方法,但不是将块写入htaccess,而是更容易改变&#34; on&#34;和&#34;关&#34;值,并且还可以更容易地将其显示为我的应用程序中的单选按钮。
答案 0 :(得分:5)
我们很想写这个:
#SetEnvIf Request_URI "^" DISPLAY_ERRORS=off
SetEnv DISPLAY_ERRORS off
<If "-T env('DISPLAY_ERRORS')">
php_flag display_errors off
</If>
<Else>
php_flag display_errors on
</Else>
但似乎<If>
在任何SetEnv(If)
之前评估。
请注意,变量的值可能取决于评估它的请求处理的阶段。例如,在完成身份验证之前评估
<If >
指令中使用的表达式
我想到的另一种工作方法是:
<IfDefine DISPLAY_ERRORS>
php_flag display_errors on
</IfDefine>
<IfDefine !DISPLAY_ERRORS>
php_flag display_errors off
</IfDefine>
使用-DDISPLAY_ERRORS
参数启动Apache以显示错误,或者对于Apache&gt; = 2.4,在虚拟主机配置中添加Define DISPLAY_ERRORS
。