0

我使用本指南5.6.17在 CentOS 6.4 服务器上安装了 PHP 。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_filtermod_ext_filter),这似乎有效。

我以前从未见过mod_ext_filter,所以我想知道这两个模块之间的确切区别是什么(以及为什么CentOSmod_filter的软件包中没有更常见的(?)模块)。php56w-common

4

1 回答 1

1

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

Apache 模块 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以查看为您自己列出的内容。

于 2016-01-28T21:29:23.490 回答