我继承了一个相当复杂的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。
答案 0 :(得分:1)
罪魁祸首是Apache MultiViews。这是令人沮丧的调查,因为配置MultiViews不会提及RewriteRule
或它将自动替换的任何文件扩展名。在了解它导致此行为之前,您必须已经了解MultiViews。