利用php浏览器缓存?

时间:2011-06-30 12:33:31

标签: php .htaccess

我正在检查谷歌页面速度工具@ http://pagespeed.googlelabs.com,我的网站点数是88.它建议我使用Leverage浏览器缓存来访问该网站。我搜索了stackoverflow关于它,但它只是关于htaccess,我的托管不让我使用htaccess,我怎么能在没有htaccess的PHP中使用它?

htaccess代码是

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

3 个答案:

答案 0 :(得分:5)

如果您的主机不支持.htaccess,也不使用其他方法配置网络服务器,则需要将整个HTTP堆栈实施到您自己的应用程序中,以提供您自己的配置。

这意味着在文件本身旁边为相关文件发送相应的标头。您需要将这些文件映射到应用程序的命令上(通常也使用.htaccess + Mod_Rewrite完成。)

简而言之,您需要通过设置标题的PHP脚本来提供所有内容。然而,这具有缺点,即PHP需要处理与Web服务器的静态文件传递相比速度有缺点的所有内容。所以我不能真的建议你这样做。在重新发明轮子之前,更容易获得适当的webhoster(或升级包装)以获得您正在寻找的功能。因此,获得一些.htaccess支持可能是最简单的方法。

作为替代但有点类似,您可以考虑将静态文件放到另一台提供所需功能的主机上(例如CDN)并将核心应用程序保留在当前的webhost上,但我认为这是只会让事情变得更复杂,而不是对你有帮助。

答案 1 :(得分:2)

经过一天的研究后,我得到了利用.htaccess文件利用浏览器兑现的解决方案。

请记住mod_expires和mod_headers应该在服务器中打开

只需输入.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>

答案 2 :(得分:1)

如果没有权限通过htaccess或ACP执行任何操作

,则无法执行此操作