本文目錄一覽:
如何在PHP開啟gzip頁面壓縮實例
1、apache環境下開啟gzip
找到並打開apache/conf目錄中的httpd.conf文件
httpd.conf中打開deflate_Module和headers_Module模塊,具體做法為將 如下兩句前面的#去掉:
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
在httpd.conf文件底部加入如下代碼配置需要壓縮的文件:
IfModule deflate_module
SetOutputFilter DEFLATE
# Don’t compress images and other
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:pdf|doc)$ no-gzip dont-vary
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css
AddOutputFilterByType DEFLATE application/x-javascript
/IfModule
重啟apache服務端
使用工具重新檢測是否開啟gzip壓縮。考慮到相關廣告檢測機制具體的gzip檢測工具訪問地址可以到搜索引擎中去查找。
2、iis7.0以上
如何開啟gzip壓縮方法大全
IIS6.0啟用Gzip壓縮的方法:
1、新建Web服務擴展(如下圖)
dll路徑:“c:windowssystem32inetsrvgzip.dll”,然後啟用。
2、網站服務中開啟HTTP壓縮支持(如下圖)
臨時目錄需要給IIS用戶讀寫權限。
3、修改IIS配置文件MetaBase.xml
文件路徑:“c:windowssystem32inetsrv”(請先備份至他處),打開後搜索“HcDynamicCompressionLevel”,並修改(確定已備份)“Compression/deflate”和“Compression/gzip”兩個片段的內容。下面的圖n和圖b所修改的內容用意是將js、css和php加入到壓縮的範疇,數字9代表壓縮等級。
(圖n)
(圖b)
4、重啟IIS服務使之生效
——————————————————分分割割—————————————————
Apache啟用Gzip壓縮的方法:
1、開啟模塊並添加配置項目
a、vi /etc/httpd/conf/httpd.conf
b、查找LoadModule (/LoadModule),加入“LoadModule deflate_module modules/mod_deflate.so”這行
c、添加配置項目(下段內容)
複製代碼代碼如下:
IfModule mod_deflate.c
# 壓縮等級 9
DeflateCompressionLevel 9
# 壓縮類型 html、xml、php、css、js
SetOutputFilter DEFLATE
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-javascript application/x-httpd-php
AddOutputFilter DEFLATE js css
/IfModule
2、重啟apache使之生效
service httpd start
——————————————————分分割割—————————————————
檢測是否支持Gzip
END
注意事項
1. 在編輯MetaBase.xml前需要停止IIS,可以使用 net stop iisadmin
2. 修改完成後開啟iisadmin服務,並執行iisreset命令
關於SEO的測試
壓縮是否對SEO有影響,經測試,開啟後仍然可以被很好的收錄。
如何用PHP實現頁面的GZIP壓縮輸出
第一步,你需要對php的設置如下:
php.ini: output_buffering = Off output_handler = ob_gzhandler zlib.output_compression = Off zlib.output_compression_level = -1
第二步,你需要在apache下增加如下設置:
AddOutputFilter DEFLATE html php js css
這樣就可以對html php js css進行gzip壓縮了。
第三步,你需要使用如下php壓縮html並輸出到客戶端的函數:
function compress_html($string) { return ltrim(rtrim(preg_replace(array(“/ *([^ ]*) */”,”//”,”‘/\*[^*]*\*/'”,”/\r\n/”,”/\n/”,”/\t/”,’/[ ]+/’), array(“\\1″,”,”,”,”,”,”),$string))); }
上面的這個正則表達式,很強大的哦,經過我本人親自測試可使用。
通過以上方法,你就可以將你的html代碼壓縮然後輸出給客戶端了。不信你可以查看源代碼,就是一行,網頁瞬間壓縮很小。
如何開啟gzip壓縮
gzip是HTML壓縮算法的一種,HTTP壓縮是在Web服務器和瀏覽器間傳輸壓縮文本內容的方法。HTTP壓縮工作原理是:
Web服務器接收到瀏覽器的HTTP請求後,檢查瀏覽器是否支持HTTP壓縮;
如果瀏覽器支持HTTP壓縮,Web服務器檢查請求文件的後綴名;
如果請求文件是HTML、CSS等靜態文件,Web服務器到壓縮緩衝目錄中檢查是否已經存在請求文件的最新壓縮文件;
如果請求文件的壓縮文件不存在,Web服務器向瀏覽器返回未壓縮的請求文件,並在壓縮緩衝目錄中存放請求文件的壓縮文件;
如果請求文件的最新壓縮文件已經存在,則直接返回請求文件的壓縮文件;
如果請求文件是ASPX等動態文件,Web服務器動態壓縮內容並返回瀏覽器,壓縮內容不存放到壓縮緩存目錄中。
怎麼做gzip壓縮呢?大致有:在Contol Pannel開啟gzip、開啟http服務器gzip、利用php本身的gzip。
IE6和火狐都支持客戶端gzip,在網頁傳輸之前,先使用gzip壓縮再傳輸給客戶端,客戶端接收之後由瀏覽器解壓顯示。
IIS6已經內建了gzip壓縮的支持。在IIS6上做gzip壓縮的方法是:
如果你需要壓縮靜態文件,可以先在硬盤上新建一個目錄,並給它“IUSR_機器名”這個用戶設置寫權限。如果壓縮動態文件就可以不用這樣的,因為它的頁面是每次都動態生成的(頁面動態生成),壓縮完就放棄。然後在IIS管理器中,“網站”上面右鍵-屬性,不是下面的某個站點,而是整個網站。進入“服務”標籤,選上啟用動態內容壓縮,靜態內容壓縮。給gzip的臨時目錄空間不要太大了200MB左右就夠了。
然後選中網站下面那個服務器擴展,新建一個服務器擴展。可以用任何你想用的名字,下面的添加文件的路徑是:
c:\windows\system32\inetsrv\gzip.dll,然後啟用這個擴展。
這時候靜態內容是可以壓縮的,但是對於動態內容,aspx文件卻不在壓縮範圍內。我們只能去修改它的配置文件了。
在c:\windows\system32\inetsrv\下面有個MetaBase.xml文件,可以用記事本打開,找到IIsCompressionScheme,有三個相同名字的段,
分別是
IIsCompressionScheme Location =“/LM/W3SVC/Filters/Compression/deflate”
IIsCompressionScheme Location =“/LM/W3SVC/Filters/Compression/gzip”
IIsCompressionSchemes Location =“/LM/W3SVC/Filters/Compression/Parameters”
前兩段有基本相同的參數,在這兩段的參數HcScriptFileExtensions下面都加上一行aspx,如果你有其它的動態程序要壓縮,也加在這裡。HcDynamicCompressionLevel改成9,9是性價比最高的一個。
至此,怎麼做gzip壓縮的過程我們就都實現了,需要注意的是:網頁啟用了gzip壓縮後網站打開速度通常可能不會有太明顯的感覺(相對於瀏覽者),可以用一些特定的來檢查你的網頁是否壓縮過了,以及壓縮比和加快的速度。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/238957.html