不用外掛,直接啟動WordPress的Gzip網頁壓縮

網頁想要速度再快,除了平時做好網頁優化之外,如果網頁輸出時可以經過壓縮,那可以讓網頁加速開啟,減少等待時間,這項功能就叫做Gzip網頁壓縮。在WordPress中雖然有外掛可以啟動Gzip網頁壓縮,不過能透過幾句語法來達到網頁壓縮,這樣不是更好嗎?其實在PHP中,有一句語法是可以開啟Gzip的,只要加在網頁輸出的前端即可。

除此之外,也可以透過.htaccess來調整系統,啟動Gzip所需的設定,讓網站達到加速的需求,若是可以啟動Gzip除了輸出時網頁比較小,接收者可以很快開啟網頁之外,也可以省一些流量的耗損,算是不錯的功能,但若是主機不支援這些設定選項,那就比較可惜了。


在WordPress中,其實大部分的快取外掛都有內建啟動Gzip壓縮功能,不論是老牌的快取外掛「WP Super Cache」、輕巧的「1 Blog Cacher」或是「hyper Cache」都可以啟動Gzip網頁壓縮功能。如果你沒有裝這些外掛,或是這些外掛雖然啟動了Gzip功能但是檢測出來卻沒有壓縮,那你可能需要透過外掛「GZippy」來啟動,不過透過這個外掛來啟動時,記得快取外掛本身的Gzip要關掉,否則可能造成衝突。

但如果你是很老手的WordPress玩家,那你一定有印象以前在後台管理中有一個是啟動網頁壓縮Gzip的設定選項,不過不知道從哪個版本開始偷偷被拿掉了,不過從資料庫內的「wp_options」資料表內看,一定還會看到一個欄位是「gzipcompression」,這就是儲存Gzip啟動的設定值,現在是空的,1表示啟動,0表示關閉,但現在就進入資料庫修改,似乎是無效了。

不過在WordPress官方的Codex上面記錄了兩種啟動Gzip壓縮的方式,一種是透過PHP函式來啟動,另一種則是透過.htaccess檔案來啟動。如果你不想要使用外掛啟動也不想使用快取外掛內建的來啟動,可以自己加入語法。

利用.htaccess啟動Gzip網頁壓縮

這方法是透過阿帕契(Apache)的「Enabling Compression」來達到。請透過FTP軟體將您的.htaccess檔案下載回來,如果沒有請用筆記本建立一個,儲存時類型請選擇所有檔案,然後檔名輸入「.htaccess」即可。在.htaccess檔案中請加入以下語法,然後儲存上傳覆蓋即可。

<IfModule mod_deflate.c>
# Insert filters
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE application/x-httpd-fastphp
AddOutputFilterByType DEFLATE image/svg+xml

# Drop problematic browsers
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
</IfModule>

不用外掛,直接啟動WordPress的Gzip網頁壓縮

透過PHP啟動Gzip網頁壓縮

另外一個方法就是透過PHP函式的方式來啟動網頁壓縮,但前提是您的系統必須有支援「Zlib Compression Functions」才有辦法啟動,您可以丟個網頁探針到伺服器上查詢看看就知道了。語法加入方式很簡單,透過FTP軟體連到WordPress根目錄,然後下載其中的「index.php」並使用筆記本軟體開啟,在「<?php」之後加入以下語法,然後上傳覆蓋即可。請注意,不是下載佈景檔案的index.php,而是WordPress主程式。修改完後請上傳覆蓋掉原本的就可以了。不過這樣的方式比較麻煩,當WordPress版本更新時,您必須重新加入語法。

ob_start('ob_gzhandler');

不用外掛,直接啟動WordPress的Gzip網頁壓縮

以上兩種方法請選擇一種使用,設定好後可以透過Gzip檢測工具檢查看看是否有成功啟動囉!不過經過測試,在zbaike或是GIDZipTest檢測時有時候結果會不太一樣?但大部分的狀況下,透過PHP的方式啟用檢測出來都有成功而透過.htaccess方式好像沒有正確的壓縮到?我目前是透過Hyper Cache快取外掛啟動Gzip,在zbaike檢測出來有壓縮,但在GIDZipTest卻是沒有壓縮,不知道他們判定的標準為何?大家可以自己試試看,以上兩種方法和小經驗提供給大家參考,也歡迎您分享經驗。