移動端訪問時,百度等搜索引擎會對網頁進行「轉碼」(重構頁面結構適配手機),導致:
雖然百度初衷是優化體驗,但對已有自適應/專用移動端的站點反而破壞體驗。
在 config.php 中配置:
'HTTP_CACHE_CONTROL' => 'private, no-transform', // 網頁緩存控制
原理:Cache-Control: no-transform 告訴中間節點(代理、轉碼服務)不得修改內容編碼/格式。
在頁面 <head> 中添加:
<head>
<meta http-equiv="Cache-Control" content="no-transform" />
</head>
| 維度 | HTTP Header | Meta 標簽 |
|---|---|---|
| 生效範圍 | 整站(配置一次) | 單頁(需每頁添加) |
| 優先級 | 高(代理層面攔截) | 低(瀏覽器解析後生效) |
| 緩存節點識別 | 標準協議,所有節點遵守 | 部分轉碼服務可能忽略 |
| 維護成本 | 低 | 高 |
Cache-Control: private, no-transformtranscoder 字樣rel="alternate" media="handheld" 標註Cache-Control: no-transform 禁止轉碼ThinkPHP 專案中,推薦使用配置文件統一設置 HTTP Header,一勞永逸,避免模板遺漏。