首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

ThinkPHP 禁止百度等搜索引擎轉碼:兩種有效聲明方法

     編輯:PHP 相關知識

問題背景

移動端訪問時,百度等搜索引擎會對網頁進行「轉碼」(重構頁面結構適配手機),導致:

  • 頁面佈局錯亂
  • 樣式失效
  • 功能異常(JS 事件綁定失效等)

雖然百度初衷是優化體驗,但對已有自適應/專用移動端的站點反而破壞體驗。

方法一:HTTP Response Header 聲明(推薦)

在 config.php 中配置:

'HTTP_CACHE_CONTROL' => 'private, no-transform', // 網頁緩存控制

原理:Cache-Control: no-transform 告訴中間節點(代理、轉碼服務)不得修改內容編碼/格式。

方法二:Meta 標簽聲明

在頁面 <head> 中添加:

<head>
    <meta http-equiv="Cache-Control" content="no-transform" />
</head>

兩種方式對比

維度HTTP HeaderMeta 標簽
生效範圍整站(配置一次)單頁(需每頁添加)
優先級高(代理層面攔截)低(瀏覽器解析後生效)
緩存節點識別標準協議,所有節點遵守部分轉碼服務可能忽略
維護成本低高

驗證方法

  1. 瀏覽器開發者工具 → Network → 檢查 Response Headers 是否包含 Cache-Control: private, no-transform
  2. 手機百度搜索站點關鍵詞,點擊結果觀察是否顯示「百度轉碼」標識或 URL 含 transcoder 字樣

補充:完整移動端適配策略

  • 優先採用響應式設計(一套代碼自適應)
  • 或實現獨立移動端(m.domain.com)+ rel="alternate" media="handheld" 標註
  • 配合 Cache-Control: no-transform 禁止轉碼
  • 百度站長平台提交移動適配關係(Sitemap 或 Meta 聲明)

ThinkPHP 專案中,推薦使用配置文件統一設置 HTTP Header,一勞永逸,避免模板遺漏。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved