使用php利用浏览器缓存?

使用php利用浏览器缓存?,php,.htaccess,Php,.htaccess,我在检查谷歌页面速度工具@,我的站点点数是88。它建议我对站点使用浏览器缓存。我搜索了stackoverflow,但是它都是关于htaccess的,我的主机不允许我使用htaccess,没有htaccess我怎么能在PHP中使用它呢 HTC访问代码为 <FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$"> Header set Cache-Control "max-age=290304000, public" </

我在检查谷歌页面速度工具@,我的站点点数是88。它建议我对站点使用浏览器缓存。我搜索了stackoverflow,但是它都是关于htaccess的,我的主机不允许我使用htaccess,没有htaccess我怎么能在PHP中使用它呢

HTC访问代码为

<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
Header set Cache-Control "max-age=290304000, public"
</FilesMatch>

标题集缓存控制“最大年龄=290304000,公共”

如果您的主机不支持
.htaccess
也不支持使用其他方法配置Web服务器,那么您需要在自己的应用程序中实现整个HTTP堆栈,以提供自己的配置

这意味着在文件本身的旁边为有问题的文件发送适当的标题。您需要将这些文件映射到应用程序的命令上(这通常也是通过
.htaccess
+
Mod_Rewrite
完成的)

简而言之,您将需要通过设置有问题的标题的PHP脚本交付所有内容。然而,这有一个缺点,即PHP需要处理所有的内容,与Web服务器的静态文件交付相比,这在速度上有一个缺点。所以我真的不能建议你那样做。在重新发明轮子之前,只需要找一个合适的webhoster(或者升级你的软件包)就可以轻松地获得你想要的功能。因此,获得一些
.htaccess
支持可能是最简单的方法


作为一种选择,但有点类似,您可以考虑将静态文件放到提供所需特性的另一个主机(例如A)上,并将核心应用程序留在当前的WebHOST上,但我认为这只会让事情变得更复杂,而不是让你更容易。经过一天的研究,我得到了这个利用.htaccess文件进行浏览器兑现的解决方案

<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresDefault "access plus 1 seconds"
  ExpiresByType image/x-icon "access plus 2592000 seconds"
  ExpiresByType image/jpeg "access plus 2592000 seconds"
  ExpiresByType image/png "access plus 2592000 seconds"
  ExpiresByType image/gif "access plus 2592000 seconds"
  ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
  ExpiresByType text/css "access plus 604800 seconds"
  ExpiresByType text/javascript "access plus 216000 seconds"
  ExpiresByType application/x-javascript "access plus 216000 seconds"
  ExpiresByType text/html "access plus 600 seconds"
  ExpiresByType application/xhtml+xml "access plus 600 seconds"
</IfModule>
<IfModule mod_headers.c>
<FilesMatch "\\.(ico|jpe?g|png|gif|swf)$">
Header set Cache-Control "max-age=2692000, public"
</FilesMatch>
<FilesMatch "\\.(css)$">
Header set Cache-Control "max-age=2692000, public"
</FilesMatch>
<FilesMatch "\\.(js)$">
Header set Cache-Control "max-age=216000, private"
</FilesMatch>
<FilesMatch "\\.(x?html?|php)$">
Header set Cache-Control "max-age=600, private, must-revalidate"
</FilesMatch>
Header unset ETag
Header unset Last-Modified
</IfModule>
记住mod_过期,mod_头应该在服务器中打开

只需将文件放在.htaccess文件中

<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresDefault "access plus 1 seconds"
  ExpiresByType image/x-icon "access plus 2592000 seconds"
  ExpiresByType image/jpeg "access plus 2592000 seconds"
  ExpiresByType image/png "access plus 2592000 seconds"
  ExpiresByType image/gif "access plus 2592000 seconds"
  ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
  ExpiresByType text/css "access plus 604800 seconds"
  ExpiresByType text/javascript "access plus 216000 seconds"
  ExpiresByType application/x-javascript "access plus 216000 seconds"
  ExpiresByType text/html "access plus 600 seconds"
  ExpiresByType application/xhtml+xml "access plus 600 seconds"
</IfModule>
<IfModule mod_headers.c>
<FilesMatch "\\.(ico|jpe?g|png|gif|swf)$">
Header set Cache-Control "max-age=2692000, public"
</FilesMatch>
<FilesMatch "\\.(css)$">
Header set Cache-Control "max-age=2692000, public"
</FilesMatch>
<FilesMatch "\\.(js)$">
Header set Cache-Control "max-age=216000, private"
</FilesMatch>
<FilesMatch "\\.(x?html?|php)$">
Header set Cache-Control "max-age=600, private, must-revalidate"
</FilesMatch>
Header unset ETag
Header unset Last-Modified
</IfModule>

过期于
ExpiresDefault“访问加1秒”
ExpiresByType图像/x图标“访问加2592000秒”
ExpiresByType图像/jpeg“访问时间加2592000秒”
ExpiresByType图像/png“访问加2592000秒”
ExpiresByType image/gif“访问时间加2592000秒”
过期按类型应用程序/x-shockwave-flash“访问加2592000秒”
ExpiresByType文本/css“访问时间加604800秒”
ExpiresByType文本/javascript“访问时间加216000秒”
ExpiresByType应用程序/x-javascript“访问时间加216000秒”
ExpiresByType text/html“访问加600秒”
ExpiresByType应用程序/xhtml+xml“访问加600秒”
标题集缓存控制“最大年龄=2692000,公共”
标题集缓存控制“最大年龄=2692000,公共”
标题集缓存控制“最大年龄=216000,专用”
标题集缓存控制“最大年龄=600,专用,必须重新验证”
标题未设置ETag
上次修改未设置的标题

找一个更好的网络主机。否。htaccess?认真地那个主机的名字是什么?谢谢,我会比以前更避开雅虎…:)让IIS看看