您在這裡

内部培訓:錯誤網址的糾正分享商議

James Qi 在 2023年2月20日 - 17:07 發表

錯誤網址編碼

這個周末花了一些時間找到和解決了兩種錯誤網址的問題,今天星期一上班趕緊與相關項目的運營和程序同事進行了分享商議,現在把要點放在下面:

一、發現錯誤網址的現象:

  • 百度點擊搜索結果到找不到的頁面或者錯誤的頁面
  • 百度快照中錯誤的亂碼
  • Drupal日志中的404中發現
  • Apache/Nginx日志中的404中發現
  • Cloudflare日志中發現
  • Google Search Console中發現

二、産生錯誤網址的原因:

  • 對網址編碼urlencode解碼urldecode的處理不對,可能重複多次處理
  • 對多字節字符(例如:中日韓文、Emoji等)編碼的處理不對,應該都是用UTF-8編碼

三、解決錯誤網址的辦法:

  1. 找到錯誤編碼的規律,确定錯誤編碼轉正确編碼的規則
  2. 對錯誤的編碼使用适當的PHP函數按正确編碼進行轉換
  3. 判斷轉換後的字符是否為我們網站數據庫中應有的字符
  4. 如果是應用的字符,再301跳轉到正确的頁面
  5. 如果不是應有的字符,再嘗試其它編碼轉換或者輸出404

四、參考鍊接:


補充:目前找到的一些編碼轉換:

  • UTF-8 轉 Windows-1252
  • UTF-8 轉 GBK
  • UTF-8 轉 ISO-8859-1,再GBK 轉 UTF-8
  • UTF-8 轉 Windows-1252,再GBK 轉 UTF-8
  • UTF-8 轉 Windows-1252,再UTF-8 轉 Windows-1252
  • UTF-8 轉 Windows-1252,再UTF-8 轉 Windows-1252,再UTF-8 轉 Windows-1252
  • UTF-8 轉 Windows-1252,再UTF-8 轉 Windows-1252,再UTF-8 轉 Windows-1252,再UTF-8 轉 Windows-1252
  • UTF-8 轉 Windows-1252,再UTF-8 轉 Windows-1252,再UTF-8 轉 Windows-1252,再UTF-8 轉 Windows-1252,再UTF-8 轉 Windows-1252
  • UTF-8 轉 Windows-1252,再UTF-8 轉 Windows-1252,再UTF-8 轉 Windows-1252,再UTF-8 轉 Windows-1252,再GBK 轉 UTF-8
  • UTF-8 轉 Windows-1252,再UTF-8 轉 Windows-1252,再GBK 轉 UTF-8
  • 簡體 轉 繁體
  • +号 轉 空格%20

發表新回應

Plain text

  • 不允許使用 HTML 標籤。
  • 自動將網址與電子郵件地址轉變為連結。
  • 自動斷行和分段。