2025 最新 WP Fastest Cache 的外掛產生的 .htaccess 詳解

什麼是 WP Fastest Cache

WP Fastest Cache 是一款非常流行的 WordPress 快取(Cache)外掛。它的主要作用是幫助你的 WordPress 網站變得更快,提升網站的載入速度和整體效能,對 SEO(搜尋引擎排名)也很有幫助。

為何 WP Fastest Cache 要產生 .htaccess 檔案

WP Fastest Cache 會產生 .htaccess 檔案,主要是因為:


.htaccess example

1. 啟用靜態快取規則

WP Fastest Cache 會在 .htaccess 中加上一些 Rewrite Rules(重寫規則),讓伺服器直接提供已經快取好的 HTML 檔案,而不是每次都重新跑 WordPress 的 PHP 程式和資料庫查詢。

➡️ 這樣做大大減輕了伺服器負擔,也讓頁面打開速度超快。


2. 設定 Gzip 壓縮

它會加一些指令,讓伺服器在傳送資料前先壓縮(Gzip 壓縮),減少傳輸的資料量。

➡️ 訪客載入網站時,檔案變小,速度變快。


htaccess

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 的缺點

cache flow

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

blog.ocam.live
blog.ocam.live

關注科技新聞、SEO、人工智慧、電玩模擬器、程式設言、與 IT 日常等議題,深入簡出文章的說明並持續追蹤相關新聞的發展與報導。