【发布时间】:2014-01-23 08:25:22
【问题描述】:
我在一个共享托管的 linux 服务器上,所以我必须使用.htaccess。我正忙于压缩和缓存东西。我实际上有两个问题,但首先是我如何在 .htaccess 文件中设置缓存。
ExpiresActive on
<FilesMatch "\.(bmp|png|ico|gff|jpg|jpeg|gif|gcf)$">
FileETag MTime Size
ExpiresDefault "now plus 60 minutes"
</FilesMatch>
问题 1,所以除了一个 PNG 文件之外,这确实会缓存这些内容。
现在我的大部分文件都是小写的,因为我在 Linux 上,但是一些 PNG 文件已经通过大写扩展名溜走了。
奇怪的是,除了一个名为addon2.PNG 的PNG 文件之外,所有的PNG 文件都进行了缓存。起初我以为是因为这种情况,但我已经检查过,我还有 3 个其他带有大写扩展名的 PNG 文件——Google Page Speed 说这些文件被缓存了。那么有什么想法或者 Google Page Speed 只是 B.S.?
问题 2,由于我的主机搞砸了他们的 Varnish 问题,我很谨慎,我一次添加一些东西来缓存,并等待看看我的东西是否搞砸了.当我尝试缓存 HTML 文件时,我网站的登录/注销功能(用 PHP 编写)不起作用。
您必须登录并刷新或注销并刷新。我想知道是因为页面 HTML 是通过 PHP 文件输出的吗?我所有的主要页面都是 PHP,我只有几个实际的 html 文件。但我认为缓存 HTML 只会使用下面的代码处理带有 htm 和 html 扩展名的文件。但这有点像服务器试图缓存 PHP 文件输出的 html。我是不是疯了?
ExpiresActive on
ExpiresDefault "now plus 60 minutes"
ExpiresByType text/html "now plus 60 minutes"
<FilesMatch "\.(css|bmp|png|ico|htm|gff|html|jpg|jpeg|gif|gcf)$">
FileETag MTime Size
ExpiresDefault "now plus 60 minutes"
</FilesMatch>
【问题讨论】:
-
为图像提供请求和响应标头。
-
不幸的是,我没有 cmd 行访问权限,所以使用嗅探器 GET /images/addon2.PNG HTTP/1.1 主机:ksa-codesphere.com 用户代理:Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0 Referer: rexswain.com/httpview.html Connection: close 接收头: HTTP/1.1·200·OK(CR)(LF) 日期:·Mon,·06·Jan·2014·01:43: 40·GMT(CR)(LF) 服务器:·Apache/2(CR)(LF) 最后修改时间:·Sun,·05·Jan·2014·03:21:40·GMT(CR)(LF) ETag: ·"303a685-968b-4ef30a449a0ce"(CR)(LF) Accept-Ranges:·bytes(CR)(LF) Content-Length:·38539(CR)(LF) Connection:·close(CR)(LF) Content-类型:·图片/png(CR)(LF) (CR)(LF)
-
hmmmm 我用另一个嗅探器检查结果,当我得到那个图像时它说没有缓存
-
firefox 请求标头直接转到图像而不是页面 hmmm max-age=0 奇怪的 User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox /19.0Referer:ksa-codesphere.com/…, 05 Jan 2014 03:21:40 GMTHost:www.ksa-codesphere.comDNT:1Connection:keep-aliveCache-Control:max-age=0Accept-Language:en-US,en;q= 0.5Accept-Encoding:gzip, deflateAccept:image/png,image/*;q=0.8,/;q=0.5 ff 响应服务器:Apache/2Etag:"303a685-968b-4ef30a449a0ce"日期: 2014 年 1 月 6 日星期一 01:53:54 GMTConnection:close 猜测
标签: php html .htaccess caching