什么在Apache中执行透明内容协商

时间:2018-06-09 00:54:54

标签: apache mod-rewrite apache-config

我继承了一个相当复杂的Java Web应用程序,它表现出一种神秘的行为,我需要知道是什么导致它。

应用程序请求文件file.css。如果file.css存在,则返回。如果file.css不存在,但file.css.gz确实存在,则会返回gzip压缩文件,其中包含以下异常标题:

Content-Location: file.css.gz
Content-Type: application/x-gzip
TCN: choice
Vary: negotiate

TCN header的存在意味着请求是透明协商的,很可能是由Apache RewriteRule协商的,但我找不到定义规则的位置。我找到并搜索了服务器上的每个Apache配置文件(多个文件用Include引用)并且每次提到“gzip”或“.gz”时都会注释掉。在所有配置文件中,只有一个RewriteRule,它适用于SSL。重启Apache后,我仍然无法禁用该行为。

这是Apache的默认行为,还是看起来像某个模块的行为?

服务器的操作系统是RHEL 5.8,Apache是​​2.2。

1 个答案:

答案 0 :(得分:1)

罪魁祸首是Apache MultiViews。这是令人沮丧的调查,因为配置MultiViews不会提及RewriteRule或它将自动替换的任何文件扩展名。在了解它导致此行为之前,您必须已经了解MultiViews。