php - .htaccess 中的条件 php_flag 语句

标签 php apache .htaccess

有没有办法在 .htaccess 中有条件地执行 php_flag 语句?这是我正在尝试做的两件事:

如果客户端的 IP 地址与我使用的 IP 地址匹配,则打开错误报告:

if %{REMOTE_ADDR} == '12.34.56.78' then
   php_flag error_reporting 1
else
   php_flag error_reporting 0

如果 IP 地址与我的匹配,请关闭 register_globals,这样我就可以调试由期望此功能打开的代码引起的任何问题。

if %{REMOTE_ADDR} == '12.34.56.78' then
   php_flag register_globals on
else
   php_flag register_globals on

感谢阅读!

最佳答案

if %{REMOTE_ADDR} == '12.34.56.78' then
   php_flag error_reporting 1
else
   php_flag error_reporting 0

这只有在 Apache Expressions 出现后才有可能实现在 Apache 2.4+ 中,您可以在其中执行此类操作...

<If "%{REMOTE_ADDR} == '12.34.56.78'">
    php_flag error_reporting 1
</If>
<Else>
    php_flag error_reporting 0
</Else>

如果在 Apache 2.2 上,这实际上是不可能的,尤其是对于依赖于请求的东西,比如 REMOTE_ADDR .在 Apache 2.2 上你有 <IfDefine> ,但这仅测试在 Appache 命令行上使用 -D 定义的参数 是否存在。选项。所以,这实际上是一个每服务器配置开关。 (在 Apache 2.4 上,您可以在服务器配置中使用 Define 指令来有条件地定义参数,但是,这仍然不能根据请求的元素 AFAIK 来定义。此外,您有无论如何在 Apache 2.4 上使用 Apache 表达式。)

关于php - .htaccess 中的条件 php_flag 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2258485/

相关文章:

apache - httpd.conf AllowOverride全部

Travis CI 上的 PHPUnit "Could not read phpunit.xml"

java - 通过 Json 从 php 页面读取信息时 Android 应用程序崩溃

linux - sudo dpkg -i mod-pagespeed-*.deb 给出 "not a debian format archive"错误

https - 如何将 openssl 与 busybox 的 httpd 一起使用?

php - 删除扩展 mod_rewrite 太宽容

php - mysql_fetch 无法收集数据库中的所有数据

php - 解析随机stdClass

javascript - Tomcat CORS : Preflight successful, 但实际请求因 403 禁止而失败

php - joomla .htaccess 中的重写规则不起作用