為什麼會失效?
只要頁面內容會因「使用者不同」而不同(登入狀態、購物車、權限), 你就不能用同一份快取回給所有人。快取要分層:靜態可長快取、動態要繞開或短 TTL。
陷阱 1) 全頁快取把狀態頁也快取了
- 首頁/列表可能可以短 TTL,但會員中心、結帳、後台必須 bypass。
- 「看起來省資源」但會造成使用者看到別人的狀態或舊狀態。
陷阱 2) Cookie 變動造成快取碎片化或錯快
- Cookie 一多,快取 key 會變複雜:命中率下降,反而更慢。
- 需要明確指定:哪些 Cookie 影響內容、哪些不影響。
陷阱 3) 第三方登入回呼頁被快取
- LINE/Google 回呼通常含 token 或一次性參數。
- 回呼頁必須 bypass,避免回到舊頁面導致「登入永遠不成功」。
陷阱 4) API/動態端點混在可快取規則裡
- 像 index.php*、store.php* 這類混合頁,容易被「一刀切」快取規則誤傷。
- 做法是拆:靜態資源長快取,動態端點明確 bypass 或以路徑白名單管理。