2011-05-28 49 views
3

請看看我的網站:vynoraPHP緩存控制似乎並沒有工作

這還不算完。我已經把PHP頭在我的HTML頁面的頂部:

<?php if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) ob_start("ob_gzhandler"); else ob_start(); ?> 
<?php 
    header("Cache-Control: max-age=6000"); 
?> 

當我去谷歌的的PageSpeed它告訴我,我應該優化我的瀏覽器緩存,請大家看看:Google pagespeed

但我已經使用PHP。那麼這怎麼可能?

回答

2

問題不在於此頁面,而不在PHP腳本中。請參閱Google的建議:

以下可緩存資源 的新鮮度壽命較短。指定 期滿至少一週在 未來以下資源:

這意味着,你應該緩存您靜態文件。
正如我所看到的,您使用Apache。在這種情況下,你可以使用mod_expires

例如,您可以將此行添加到.htaccess文件:

ExpiresActive On 
ExpiresDefault "access plus 1 seconds" 
ExpiresByType text/html "access plus 1 seconds" 
ExpiresByType image/x-icon "access plus 2592000 seconds" 
ExpiresByType image/gif "access plus 2592000 seconds" 
ExpiresByType image/jpeg "access plus 2592000 seconds" 
ExpiresByType image/png "access plus 2592000 seconds" 
ExpiresByType text/css "access plus 604800 seconds" 
ExpiresByType text/javascript "access plus 86400 seconds" 
ExpiresByType application/x-javascript "access plus 86400 seconds" 
+0

嗨,我一直在尋找我的服務器上的.htaccess,但我找不到它....可能是因爲我有意外刪除它?這可能嗎?我如何製作一個新的。我試着用記事本並將它保存爲.htaccess當我把它放在我的index.php旁邊時,網頁不起作用(錯誤)當我把它放在根目錄(公共文件郵件等)旁邊時,它什麼都不做。 – Youss 2011-05-28 13:43:04

+0

@yomoore,這個文件應該在放置index.php文件的同一文件夾中,使用[Notepad ++](http://notepad-plus-plus.org/)或者一些IDE(netbeans,PhpStorm),不要使用記事本(他在文件開頭添加了不可見的愚蠢符號)。 – 2011-05-28 13:47:50

+0

它現在可以運行:)我下載了記事本++和copyd文本。我也刪除了PHP ...非常感謝,你救了我的一天。 – Youss 2011-05-28 14:09:08

1

緩存的頁面到用戶的瀏覽器插件論文標題:

header("Cache-Control: private, max-age=6000, pre-check=6000"); 
header("Pragma: private"); 
header("Expires: " . gmdate("D, d M Y H:i:s"). " GMT"); 

GZIP:

http://www.whatsmyip.org/http_compression/?url=aHR0cDovL3d3dy52eW5vcmEuY29tLw==

說,它的gzip壓縮

http://redbot.org/?uri=http%3A%2F%2Fwww.vynora.com%2F

說,它的gzip壓縮

+0

這與我已有的有什麼不同?它在我看來也是一樣。 – Youss 2011-05-28 13:39:08

1

這可能不行,因爲有可能的空白頭之前()。 嘗試這樣的:

<?php 
    if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) { 
     ob_start("ob_gzhandler"); 
    } else { 
     ob_start(); 
    } 
    header("Cache-Control: max-age=6000"); 
?> 

應設置過期頭爲好,因爲舊的瀏覽器不理解「最大年齡」。

Btw .:您的服務器當前正在發送「max-age:0」。

+0

你的意思是'你的服務器正在發送'max-age:0'''你是怎麼檢查這個的? – Youss 2011-05-28 13:37:59

+0

獲取Firefox的LiveHttpHeaders插件。更新:現在它的6000. :) – reeaal 2011-05-28 13:39:07