我使用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
模块不可用于CentOS的php56w-common
包。)
答案 0 :(得分:1)
&#34;我相应地更改了我的指令(用mod_ext_filter替换了mod_filter),这似乎有效。&#34;我无法想象这可能意味着什么,但这两个模块使用完全不同的指令并用于不同的目的。 mod_ext_filter
允许您在自己选择的外部脚本中编写过滤器。 mod_filter
运行从已编译模块加载的过滤器。
Apache Module mod_filter
描述:上下文相关的智能过滤器配置模块
https://httpd.apache.org/docs/2.2/mod/mod_filter.html
Apache模块mod_ext_filter
描述:在传递给客户端之前,通过外部程序传递响应正文
https://httpd.apache.org/docs/2.2/mod/mod_ext_filter.html
如果 - 我怀疑 - 您没有使用任何一个模块,为什么要加载它们?
编辑:你指的是PHP过滤模块吗?如果是这样,那就是永远存在于PHP中。运行php -m | grep filter
以查看自己列出的内容。