2012-09-13 121 views
1

我已經編寫了一個使用其他人的API的Web應用程序,該應用程序需要需要 ETags。我試過這個代碼:阻止Apache阻止ETags

header("ETagbleh: whatever"); 

這是完美的。但是,當我設置這個:

header("ETag: whatever"); 

什麼也沒有發生。我聽說它可能是Apache阻止發送ETags,但我不確定。我在我的apache2.conf中搜索了ETag,找不到任何要取消註釋/刪除的東西,所以我來這裏問。

那麼,我該如何阻止Apache阻止我的頭文件?我使用的是Apache 2.2.22,並且我認爲腳本語言是不相關的,因爲我使用的是PHP 5.4.4,它可以設置任何其他頭文件。

+0

你可以參考Apache做到這一點,從來沒有它和我使用API​​使用ETag。 – 2012-09-13 20:58:50

+1

你不說哪個apache 1.3,2.0,2.2,2.4哪個腳本技術在使用(也許是PHP?)。通常對於腳本來說,apache不會嘗試做任何事情,它通常只會將它們發送給靜態文件,.htaccess可以根據https://httpd.apache.org/docs/2.2/mod/core.html#包含「FileETag None」 fileetag –

回答

0

我遇到了同樣的問題。

一個非常流行的方式去除的Apache2 ETag的是增加了如下配置:

Header unset ETag 
FileETag None 

刪除第一個配置行,如果你在你的配置中找到它。

有點難找的是mod_include引起的問題。默認情況下,這個模塊刪除ETag-Header。但是你可以通過配置來允許它。因此,請添加如下內容:

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

請參閱here瞭解更多信息。