php實例gzip傳輸頁面
代碼如下 復制代碼可以用於靜態資源與html頁面,修改一下也適合於其他語言
//緩存過期時間(Cache-Control, http1.1協義), 推薦使用
$secs = 0; //秒
header("Cache-Control: s-maxage=$secs, max-age=$secs, must-revalidate, proxy-revalidate");
// 緩存過期時間為24小時(Expires)
$offset = 3600 * 24;
$expire = "Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT";
Header($expire);
//Last-Modified, 最後修改的時間
$gmt_mtime = gmdate('D, d M Y H:i:s', time() ) . ' GMT';
header("Last-Modified: " . $gmt_mtime );
//啟用gzip壓縮
ob_start();
... your php code ...
... your php code ...
... your php code ...
header('Content-Length: ' . ob_get_length());
ob_end_flush();
如果你有服務器權限可參考apache開啟gzip傳輸
一,找到你的httpd.conf文件,打開找到如下
LoadModule deflate_module modules/mod_deflate.so
把前面的#去了,因為mod_deflate.so模塊默認是關閉的,好了下面一下
二,把現面代碼放到你httpd.conf文件最後面就好了。
代碼如下 復制代碼<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
DeflateCompressionLevel 5
AddOutputFilterByType DEFLATE text/html text/css image/gif image/jpeg image/png application/x-javascript
</IfModule>
重啟你的apache就KO了
iis開啟gzip頁面傳輸
1. 打開Internet信息服務(IIS)管理器,右擊“網站”-》“屬性”,選擇“服務”。在“HTTP壓縮”框中選中“壓縮應用程序文件”和“壓縮靜態文件”,按需要設置“臨時目錄”和“臨時目錄的最大限制”;
2. 在Internet信息服務(IIS)管理器,右擊“Web服務擴展”-》“增加一個新的Web服務擴展。。.”,在“新建Web服務擴展”框中輸入擴展名“HTTP Compression”,添加“要求的文件”為C:WINDOWSsystem32inetsrvgzip.dll,其中Windows系統目錄根據您的安裝可能有所不同,選中“設置擴展狀態為允許”;
3. 使用文本編輯器打開C:WindowsSystem32inetsrvMetaBase.xml(建議先備份),
找到Location =“/LM/W3SVC/Filters/Compression/gzip用於設置gzip壓縮,
找到Location =”/LM/W3SVC/Filters/Compression/deflate“用於設置deflate壓縮。 上面兩個節點緊挨著。並且設置的屬性相同。
如果需要壓縮動態文件,則將HcDoDynamicCompression設置為”TRUE“,
並在HcScriptFileExtensions中增加您要壓縮的動態文件後綴名,如aspx;
如果需要壓縮靜態文件,則將HcDoStaticCompression和HcDoOnDemandCompression設置為”TRUE“,
並在HcFileExtensions中增加您需要壓縮的靜態文件後綴名,如xml、css等;
HcDynamicCompressionLevel和HcOnDemandCompLevel表示需要的壓縮率,數值在0-10, 默認為0。
HcDynamicCompressionLevel屬性說明:HcDynamicCompressionLevel Metabase Property
HcOnDemandCompLevel 屬性說明:HcOnDemandCompLevel Metabase Property
說明: 這兩個屬性值一般推薦設置為9, 具有最佳性價比。
注意
1. 在編輯MetaBase.xml前需要停止IIS,可以使用 net stop iisadmin
2. 修改完成後開啟iisadmin服務,並執行iisreset命令
關於SEO的測試
壓縮是否對SEO有影響,經測試,開啟後仍然可以被很好的收錄。
關於對SEO影響的研究文章,還可以參考下面的幾篇文章。
具體的效率問題,將繼續監控以作研究