ke.qq.com url重構總結

  • 2019 年 12 月 4 日
  • 筆記

本文作者:IMWeb 吳浩 原文出處:IMWeb社區 未經同意,禁止轉載

一、重構的目的

1.url簡化

過長的url不利於傳播,比如輸入框的字數限制導致分享的url被截斷或分享內容無法提交。複製url文本時,短的url也可能使滑鼠少拖動一段距離。

2.規範url

http://ke.qq.com/cgi-bin/courseDetail?course_id=36413 類似這個課程詳情頁的url,包含大、小字母、下劃線和中劃線。我們希望統一下劃線做單詞間分隔。

3.結構化,語義化

例如:http://ke.qq.com/tupu/3/course 這個鏈接表示圖譜(學習導圖)模組中,3號學習導圖囊括的課程列表,這是url的結構。語義化:特性領域的一些辭彙,"tupu"(圖譜),「course」(課程)。為什麼url中有漢語拼音,又有英文單詞,那是因為大家覺得這樣簡潔,比較好懂。若把url中的圖譜id「/3/」換成圖譜名稱"/android/",可能從語義上、搜索結果排名上會更好一些。

4.採用技術無關的url

提供動態內容服務時,像cgi-bin之類的單詞不應該出現在url中。

說明:本次url重構主要是對直出頁面做的。

二、url重構前、後的對應關係

重構前url

重構後URL

全部課程頁

http://ke.qq.com/cgi-bin/courseList

http://ke.qq.com/course/list

搜索結果頁

http://ke.qq.com/cgi-bin/courseList?word=android

http://ke.qq.com/course/list/android (2015.11.2發布)

課程詳情頁

http://ke.qq.com/cgi-bin/courseDetail?course_id=36413

http://ke.qq.com/course/36413

老師詳情頁

http://ke.qq.com/cgi-bin/teacher?tid=4140927368

http://ke.qq.com/teacher/4140927368

學團貼子列表頁

http://ke.qq.com/cgi-bin/bbs/xbar_info?bid=226209

http://ke.qq.com/bbs/tuan/226209

學團帖子詳情頁

http://ke.qq.com/cgi-bin/bbs/posts/post_detail?bid=226209&pid=8097603-1435217065

http://ke.qq.com/bbs/topic/8097603-1435217065?bid=226209

圖譜首頁

http://ke.qq.com/cgi-bin/ke_graph?mapid=6

http://ke.qq.com/tupu/6

圖譜的課程頁

http://ke.qq.com/cgi-bin/ke_graph/courseList?mapid=6

http://ke.qq.com/tupu/6/course

H5所有頁面

http://ke.qq.com/mobilev2/*.html

http://m.ke.qq.com/*.html

三、url重構需要做什麼?

1.nginx轉發規則

(1)索引擎收錄了大量舊url,希望搜索引擎能快速地切換到新url,並且將頁面的權重傳遞過去,所以用了301跳轉,如下方圖1所示。(2015.11.2發布) (2)希望url重構對CGI層透明,由接入層nginx完成新-舊地址的轉換工作,如下方圖2所示。

2.平台互轉

教育的部分重點頁面在PC端與移動端有2個不同版本的實現,如果用戶使用手機瀏覽他人分享的PC課程詳情頁時,我們希望用戶看到的是相應H5的課程詳情頁,反之亦然。處理這種不同平台url的對應關係叫平台互轉。

pc url

移動端url

首頁

http://ke.qq.com/

http://m.ke.qq.com/

課程詳情頁

http://ke.qq.com/course/36413

http://m.ke.qq.com/courseDetail.html?course_id=36413

全部課程頁

http://ke.qq.com/course/list

http://m.ke.qq.com/courseList.html

老師詳情頁

http://ke.qq.com/teacher/4140927368

http://m.ke.qq.com/teacher.html?tid=4140927368

3.url提交

url重構後,出現了一批新地址,我們要將這批新地址及時地提交百度搜索引擎。

//提交百度  $(window).load(function () {          $.getScript('http://push.zhanzhang.baidu.com/push.js');  });

4.路徑上報

目前,用戶訪問路徑上報是通過一份公共的配置管理的。 var KEY_MAP ={ '/cgi-bin/courseDetail': 'H', '/cgi-bin/courseList': 'K', … }; 比如用戶訪問課程詳情頁http://ke.qq.com/cgi-bin/courseDetail?course_id=36413 ,那麼在用戶訪問路徑中會新增一個節點"H"與之對應。url變成http://ke.qq.com/course/36413 之後這個映射key也需要微調。

5.其他修改點

  • 後台程式碼對url的合法性檢查
  • 頁面內a標籤url修改
  • 獲取頁面參數修改
  • 管理後台運營配置