ke.qq.com url重构总结

一、重构的目的

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修改
  • 获取页面参数修改
  • 管理后台运营配置

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏互联网杂技

我用爬虫一天时间“偷了”知乎一百万用户,只为证明PHP是世界上最好的语言

看了不少朋友圈里推荐的Python爬虫文章,都觉得太小儿科,处理内容本来就是PHP的强项,Python唯一的好处估计也就天生的Linux自带,和Perl一样,这...

3647
来自专栏智能算法

软件全程建模

在软件工程的全部实施过程中都采用模型的方式而非文字的表达方式来进行描述,这样的实现过程称之为全程建模。全程建模的特点是:模型相互之间是有关联的,模型成为软件工...

3427
来自专栏Crossin的编程教室

替换文件中的敏感信息

Long long time no see.『每日一坑』栏目又来啦! 今天我们来做一个现实中有可能会碰到的问题: 替换文件中的敏感信息 问题描述 假设我们有一份...

34410
来自专栏地方网络工作室的专栏

Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(一)基础知识概述

Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(一)基础知识概述 前言 2016年,我写了一系列的 VUE 入门教程,当...

1979
来自专栏风中追风

如果进入CPU的世界,时间会是怎样的?

不知道大家有没有感觉每天写代码的时间过得很快啊,有时候一天过去了一个功能还没完成,但是时间就这么没了!

3289
来自专栏杨建荣的学习笔记

KDB和Oracle的性能pk小记(r6笔记第44天)

在偶然的机会听到了KDB,然后带着好奇和新鲜感体验了一把这个传说中和Oracle 相似度达到99%的数据库。 其中一部分的驱动力在于这个活动的奖品很丰厚,参加活...

2863
来自专栏腾讯技术工程官方号的专栏

腾讯容器云平台GaiaStack亮相kubeCon

KubeCon + CloudNativeCon 首次登陆中国上海。这意味着中国Kubernetes 爱好者们齐聚上海来参与这场全球范围内最大的 Kuberne...

1112
来自专栏逍遥剑客的游戏开发

关于Web3D

1463
来自专栏腾讯移动品质中心TMQ的专栏

精准测试之精简用例

1 背景 手机管家目前有6年多的历史了,一直在持续不断的加入新特性,每次发布前除了新增功能之外,旧的核心功能也是发布之前必须确保的。 1.1当前用例情况 6年的...

2008
来自专栏码洞

深度解析某头条的一道面试题

请问,如果实时展现热门文章,比如近8小时点击量最大的文章前100名。 如果是你来开发这个功能,你怎么做?

662

扫码关注云+社区