![Apache mod_filter + PHP(mod_php)](https://linux22.com/image/679765/Apache%20mod_filter%20%2B%20PHP%EF%BC%88mod_php%EF%BC%89.png)
我正在尝试配置我的服务器以自动将跟踪代码 (Piwik) 插入到所有提供的页面。我同时使用静态网站和一些 PHP 网站。我使用了在 Piwik 论坛上找到的以下方法,该方法基于 mod_filter 和替换。
AddOutputFilterByType SUBSTITUTE text/html application/x-httpd-php
Substitute "s~</body>~...PIWIK CODE...</body>~ni"
但是,它只适用于纯 HTML 页面。我尝试过各种 PHP MIME,如 text/php 或 application/x-httpd-php5,但都无济于事。PHP 页面从未被过滤器修改,而 HTML 页面则没有问题。
我开始认为 mod_php 可能以某种方式绕过了 mod_filter 替换?
答案1
问题是启用了 gzip。出于某种奇怪的原因,它只适用于通过 mod_php 处理的站点,而不适用于直接提供服务的站点。我通过关闭 gzip 解决了这个问题:
SetEnv no-gzip 1
AddOutputFilterByType SUBSTITUTE text/html application/x-httpd-php
Substitute "s~</body>~...PIWIK CODE...</body>~ni"
它作为一种解决方法,但是 gzip 很有用,所以我希望看到另一种不关闭 gzip 的解决方案。