1
我一直在嘗試爲我的網站的靜態文件(如jpg,png,css等)設置緩存,但到目前爲止沒有成功,我發現PHP的配置正在接管.htaccess是配置。PHP配置覆蓋.htaccess緩存標頭
我已驗證mod_expires.so在我的httpd.conf中未註釋。
我在.htaccess中試過,但徒勞無功。
<IfModule mod_expires.c>
ExpiresActive On
<FilesMatch "\.(jpe?g|png|gif|js|css|ttf|eto|svg|woff|otf)$">
ExpiresDefault "access plus 1 month"
</FilesMatch>
</IfModule>
甚至嘗試沒有成功
<FilesMatch "\.(flv|gif|jpg|jpeg|png|ico)$">
Header set Cache-Control "max-age=2592000"
</FilesMatch>
然後我發現,我的php.ini有session.cache_limiter = nocache
我把它改成session.cache_limiter = public
和我在php.ini中改變這一配置並重新啓動Apache的後session.cache_expire=180
,我發現圖像的響應標頭改變如下
HTTP/1.1 200 OK
Date: Fri, 19 Sep 2014 07:33:58 GMT
Server: Apache/2.2.3 (CentOS)
X-Powered-By: PHP/5.2.10
Expires: Fri, 19 Sep 2014 10:33:58 GMT
Cache-Control: public, max-age=10800
Last-Modified: Mon, 05 Dec 2011 19:08:22 GMT
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8
我想要做的是將cach e圖像和「訪問加1個月」的css/js文件
任何建議表示讚賞。
謝謝你的答案,但我已嘗試以及:( – Alyas 2014-09-19 07:58:56
是的,這就是我提到,似乎PHP配置是壓倒htaccess的指令 – Alyas 2014-09-19 08:09:00
。 PHP配置不能覆蓋'text/javascript'或'image/gif'的緩存。嘗試註釋掉你的'FilesMatch'塊並在一個新的瀏覽器中測試。你也可以在這些行之前使用'ExpiresActive on'嗎? – anubhava 2014-09-19 08:10:48