1

我编写了一个 Web 应用程序,它使用需要ETags 的其他人的 API。我试过这段代码:

header("ETagbleh: whatever");

效果很好。但是,当我设置这个时:

header("ETag: whatever");

什么都没发生。我听说可能是 Apache 阻止了 ETag 的发送,但我不确定。我已经在我的 apache2.conf 中搜索了 ETag 并且找不到任何要取消注释/删除的内容,所以我来这里询问。

那么,如何阻止 Apache 阻止我的标头?

编辑:我使用的是 Apache 2.2.22,我认为脚本语言无关紧要,因为我正在使用的 PHP 5.4.4 可以设置任何其他标头。

4

1 回答 1

1

我有同样的问题。

在 Apache2 中删除 ETag 的一种非常流行的方法是添加以下配置:

Header unset ETag
FileETag None

如果您在配置中找到它,请删除第一条配置行。

更难找到是mod_include导致问题的原因。默认情况下,此模块会删除 ETag-Header。但是您可以通过配置允许它。所以添加这样的东西:

 <IfModule mod_include.c>
     SSIETag on
 </IfModule>

请参阅此处了解更多信息。

于 2015-09-09T10:02:49.583 回答