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修改
- 獲取頁面參數修改
- 管理後台運營配置