Apache2.4 htaccess - 负ifModule执行无论如何

时间:2018-02-03 21:51:17

标签: .htaccess apache2.4

考虑.htaccess中的以下Apache conf指令:

ErrorDocument 403 /dbug.html

<IfModule !mod_php5.c>
    Require all denied
</IfModule>

即使mod_php5处于有效状态,它也会拒绝访问,但会忽略ErrorDocument 如果我删除!它会触发ErrorDocument 403 - 它应该是,但这是倒退的,而且是错误的..

任何答案/建议都将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:0)

在某些共享托管环境中,可以使用实时模块版本切换(热切换);因此,主模块名称(模块处理程序)可能与目标模块名称不同,但目标模块将仅在模块处理程序调用时显示为存在。

解决方案是跟踪模块处理程序名称的名称,并引用它而不是..请联系托管服务提供商。在这种情况下,module-handler-name是:mod_php_null(Hetzner);所以<ifModule !mod_php_null.c>将按预期工作-BUT-来设置目标模块的指令,使用目标模块名称;那么<ifModule !mod_php7.c>将按预期工作。

如果这样的模块没有“模块处理程序”,那么在两个条件中直接引用目标模块应该在服务器守护程序启动时加载时工作。

此问题也发布在 服务器故障 上,以避免重复 - .htaccess代码已发布there