如果我這樣做:Apache:ExpiresDefault不起作用,而「標題」起作用。怎麼會?
<IfModule mod_expires.c>
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|swf|mp3|mp4|css|js|php)$">
ExpiresActive On
ExpiresDefault "access plus 30 days"
</FilesMatch>
</IfModule>
它不正確設置過期頭,而如果我「逼」它的手像這樣:
<IfModule mod_expires.c>
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|swf|mp3|mp4|css|js|php)$">
ExpiresActive On
Header set Expires "Thu, 18 Jan 2012 20:00:00 GMT"
</FilesMatch>
</IfModule>
它的工作原理。這意味着兩兩件事:安裝
- mod_expire(
IfModule mod_expires.c
爲true) - 的到期報頭是不應用此規則之後改性。
我錯過了什麼?順便說一下:如果你有任何解決方案使它工作,我是你的男人!
我沒有htaccess文件(高性能規則),一切都在虛擬主機中,並且在虛擬主機中沒有像這樣的指令。他們是全球性的。它們適用於虛擬主機,因爲正如我在我的問題中強調的那樣,第二個例子起作用,並且它改變了過期。 – 2012-01-11 21:01:37
所以我肯定被卡住了...... – 2012-01-11 21:22:04
@Olivier,抱歉,我錯過了你對vhost的強調,但是我的觀點仍然認爲你明確地禁用了.htaccess文件,以防萬一你的應用程序目錄/目錄中存在一個文件,因爲任何{ ExpiresDefault}在這裏將覆蓋你的。同上你有沒有grep的Apache配置層次結構,以確保其他{ExpiresDefault}不會覆蓋你的配置節優先級(http://httpd.apache.org/docs/2.2/sections.html)。 AFAIK,這不是一個Apache的錯誤,所以下一個最可能的解釋是符合你提供的證據是一個優先問題。 – TerryE 2012-01-12 23:57:07