2011-06-30 177 views
3

我正在检查谷歌页面速度工具@http://pagespeed.googlelabs.com和我的网站点是88.它建议我使用杠杆浏览器缓存的网站。我搜索了关于它的stackoverflow,但它都是关于htaccess,我的主机不让我使用htaccess,我如何在没有htaccess的情况下使用PHP?利用浏览器缓存与PHP?

htaccess的代码是

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

获得更好的虚拟主机。 – SLaks

+1

没有.htaccess?真的吗?那个主机叫什么名字? – deceze

+0

这是雅虎主机 –

回答

5

做任何事情。如果你的主机供应商不支持.htaccess配置也与其他方法的web服务器,你会需要将整个HTTP堆栈实施到您自己的应用程序中,以提供您自己的配置。

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

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

作为替代方案,但有点类似,您可以考虑将静态文件放到另一台提供所需功能的主机上(例如CDN),并将核心应用程序保留在当前虚拟主机上,但我认为这只会让事情比它更容易帮助你。

1

你不能做没有权限通过htaccess的或ACP

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>