mod_ext_filter 和 mod_filter 的区别?

Difference between mod_ext_filter and mod_filter?

我使用 this 指南在 CentOS 6.4 服务器上安装了 PHP 5.6.17。 Contao 安装在该服务器上 运行。 Contao 在其默认的 .htaccess 中附带了这些指令:

##
# Gzip compression
# @see https://github.com/h5bp/html5-boilerplate
##
<IfModule mod_deflate.c>
  <IfModule mod_filter.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/css application/json
    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE text/xml application/xml text/x-component
    AddOutputFilterByType DEFLATE application/xhtml+xml application/rss+xml application/atom+xml
    AddOutputFilterByType DEFLATE image/x-icon image/svg+xml application/vnd.ms-fontobject application/x-font-ttf font/opentype
  </IfModule>
</IfModule>

这将启用自动 Gzip 压缩。但是,在该服务器上,我注意到默认情况下未启用 mod_filter 扩展,即使它应该是 php56w-common 包的一部分(请参阅 https://webtatic.com/packages/php56/)。我确实注意到启用了 mod_ext_filter 扩展 - 我相应地更改了我的指令(将 mod_filter 替换为 mod_ext_filter)这似乎有效。

我以前从未见过 mod_ext_filter 所以我想知道这两个模块之间的确切区别是什么(以及为什么更常见的 (?) mod_filter 模块在 [=15] 中不可用=] CentOS 的软件包)。

“我相应地更改了指令(将 mod_filter 替换为 mod_ext_filter),这似乎有效。”我无法想象这可能意味着什么,但这两个模块使用完全不同的指令并用于不同的目的。 mod_ext_filter 允许您在您选择的外部脚本中编写过滤器。 mod_filter 运行从已编译模块加载的过滤器。

Apache Module mod_filter

Description: Context-sensitive smart filter configuration module

https://httpd.apache.org/docs/2.2/mod/mod_filter.html

Apache Module mod_ext_filter

Description: Pass the response body through an external program before delivery to the client

https://httpd.apache.org/docs/2.2/mod/mod_ext_filter.html

如果——我怀疑——你没有使用任何一个模块,为什么要加载它们?

编辑:您指的是 PHP 过滤模块吗?如果是这样,那将永远内置于 PHP 中。 运行 php -m | grep filter 自行查看列表。