什麼是 WP Fastest Cache
WP Fastest Cache 是一款非常流行的 WordPress 快取(Cache)外掛。它的主要作用是幫助你的 WordPress 網站變得更快,提升網站的載入速度和整體效能,對 SEO(搜尋引擎排名)也很有幫助。
文章大綱
為何 WP Fastest Cache 要產生 .htaccess 檔案
WP Fastest Cache 會產生 .htaccess
檔案,主要是因為:

1. 啟用靜態快取規則
WP Fastest Cache 會在 .htaccess
中加上一些 Rewrite Rules(重寫規則),讓伺服器直接提供已經快取好的 HTML 檔案,而不是每次都重新跑 WordPress 的 PHP 程式和資料庫查詢。
➡️ 這樣做大大減輕了伺服器負擔,也讓頁面打開速度超快。
2. 設定 Gzip 壓縮
它會加一些指令,讓伺服器在傳送資料前先壓縮(Gzip 壓縮),減少傳輸的資料量。
➡️ 訪客載入網站時,檔案變小,速度變快。

3. 設定瀏覽器快取(Browser Caching)
在 .htaccess
中加入瀏覽器快取的規則,例如:
apache複製編輯<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
...
</IfModule>
➡️ 意思是告訴瀏覽器,像圖片這類檔案可以在訪客的電腦上快取一年,下次再進網站時,不用重新載入這些靜態資源。
WP Fastest Cache 產生 .htaccess 檔案內容解釋。網域會有不同,這裡是用 ocam.live 作範例
條件判斷 (RewriteCond):
RewriteCond %{HTTPS} =on
只針對 HTTPS 請求生效。
RewriteCond %{HTTP_HOST} ^ocam.live
限定主機為 ocam.live(沒有 www)。
RewriteCond %{HTTP:Cookie} !wordpress_logged_in_[^\=]+\=allen|candy|Admin
排除已登入的三個特定使用者:allen、candy、Admin,他們的登入 cookie 不符合這條件就會觸發 rewrite。
RewriteCond %{HTTP_HOST} ^hehopets.com
再次確認主機名是 ocam.live。
RewriteCond %{HTTP_USER_AGENT} !(facebookexternalhit|WP_FASTEST_CACHE_CSS_VALIDATOR|Twitterbot|LinkedInBot|WhatsApp|Mediatoolkitbot)
排除一些常見的爬蟲或社交媒體預覽機器人。
RewriteCond %{HTTP_USER_AGENT} !(WP\sFastest\sCache\sPreload(\siPhone\sMobile)?\s*Bot)
排除 WP Fastest Cache 的預載機器人。
RewriteCond %{REQUEST_METHOD} !POST
只對 GET 等非 POST 的請求處理。
RewriteCond %{REQUEST_URI} !(\/){2,}
避免處理 URL 中有連續兩個以上斜線的請求。
RewriteCond %{THE_REQUEST} !(\/){2,}
同樣防止原始請求中有連續斜線。
RewriteCond %{REQUEST_URI} ![^\/]+\/$
不匹配以目錄形式結尾的 URL(避免重複轉址)。
RewriteCond %{QUERY_STRING} !.+
排除帶有 query string(如 ?id=123)的請求。
RewriteCond %{HTTP:Cookie} !wordpress_logged_in
排除所有已登入的使用者。
RewriteCond %{HTTP:Cookie} !comment_author_
排除有留言者 cookie 的使用者。
RewriteCond %{HTTP:Profile} !^[a-z0-9\"]+ [NC]
不太常見,可能是針對某些特殊裝置的 HTTP Profile 標頭,略過符合條件的 request。
RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/all/\/index.html -f [or]
如果對應的快取 HTML 檔案存在於 DOCUMENT_ROOT 中的快取路徑。
RewriteCond /var/www/pets/wp-content/cache/all/\/index.html -f
或是在硬編碼指定的目錄下也有對應快取頁面。
RewriteRule ^(.*) "/wp-content/cache/all/\/index.html" [L]
如果上面所有條件都成立,則把請求導向對應的快取 HTML 頁面。
[L] 代表這是最後一條規則,執行後就不再處理其他規則。
WP Fastest Cache Rewrite Rule 的缺點

當存取的 URL 裡頭有帶 UTM 等參數時 Rewrite Rule 會失效。換句話說,會改由 PHP 判斷快取要從何處取得。是由已存在的靜態頁檔直接回應還是重新產生。此時該網頁的速度就會大大的減少,個人目測起碼 10 倍以上。這也就是在所有的 wordpress 的快取外掛中少用 UTM 參數。因為會影響到網站反應的速度