如何利用动态URL提升SEO及处理业务逻辑
如果你正在建设一个新网站或者对现有网站重新设计,我们认为应该将网站的 URL 转换为用户友好的 URL,或搜索引擎友好的 URL,这类 URL 也称为语义 URL(Semantic URL)。哪些URL 是语义 URL 呢?通过如下举例来进行说明。首先来看一下搜索引擎比较厌烦的 URL:
http://example.com/product.ph...
很明显,当你看到这样的 URL 时,根本弄不清楚当前看到的是那个产品的信息。所以,我们有必要将 URL 改成以下形式的链接:
http://example.com/product/28...
可以看到转换之后的 URL 更容易被看懂,这类 URL 就是语义 URL。
除此之外,网站一些业务逻辑的实现你更希望放在云平台上来进行计算和处理,直接在 CDN 边缘网络中来执行前向重写逻辑,避免对数据中心来回提出请求,一方面可以提升用户体验,另一方面可以减轻源站压力。这些业务逻辑的处理包括如下:
请求重定向
请求禁止
HTTP 头部修改
请求限速策略
以上业务逻辑的处理,你都可以通过又拍云自定义 Rewrite 规则来实现。那什么是自定义Rewrite?如何配置 Rewrite 规则来实现业务逻辑及 URL 改写?接下来的章节我们会一一展开。
什么是自定义 Rewrite ?
又拍云自定义 Rewrite 是基于 DSL ( Domain Specific Language )理念来设计的,主要面向开发者使用。充分利用又拍云 CDN ( Content Delivery Network )分布式边缘网络的性能及规模,通过又拍云管理控制台可轻松创建rewrite规则,可以实现对URL的改写、重定向、自定义 HTTP头、请求禁止等处理逻辑。详细介绍可参见自定义 Rewrite。
举个例子:
最常见的做法,就是将一组 URL 层次结构字符串,转换成带有 Query String 的URL,或是反向转换,例如:
http://www.upyun.com/1/test/test
经过 URL 重写后,实际的 URL 为:
http://www.upyun.com/1/web/in...
因此,最终你可以使用较直接的方式来输入 URL(这也是 REST 的主要目的),是搜索引擎优化(SEO)的作法之一。而应用程序开发者可以利用这个机制来将参数隐藏起来,可避免让网络上的恶意用户收集到有利于发动攻击的信息。
如何配置?
通过以上章节,已经理解什么是自定义 Rewrite 了。接下来,就是如何进行 Rewrite 规则的编写和调试了。
准备工作
1、创建 CDN 服务
如果你需要配置自定义 Rewrite 规则,前提条件是在又拍云平台创建 CDN 服务,具体创建步骤可参见创建服务。
2、熟悉 Rewrite 函数、变量、字符串变量及其使用方法
自定义 Rewrite 支持的函数超过40个,变量超过15个。所以你必须要理解和熟悉每个函数及变量的含义以及使用方法,才可以开始编写规则。详细了解请参见自定义 Rewrite。
3、确定需要 Rewrite 的 URL
编写规则
又拍云自定义 Rewrite 规则包括 URL 提取正则和 Rewrite 规则两个部分,分别对应下面的 pattern 和 rule 部分,具体参见如下示例:
1.pattern:^pay/([0-9]+)/([0-9]+)/(.*?).htm$
2.rule:/pay.php?payid=$1&categoryid=$2
第一部分:正在找什么?
上述的 pattern 也即 URL 提取正则,以上正则表达式定义了正在找什么。此处我们将该正则表达式进行拆分下,然后一一对应,假如示例 URL 为:
http://example.com/pay/25/8/...
1、^pay/告诉 Web 服务器,试图匹配的 URL 必须以 pay/这个字符串开头,这与示例 URL 中的pay/匹配;
2、接下来的([0-9]+)告诉 Web 服务器在/后面紧跟的是 0-9 之间的数字,该数字至少出现一次,用来匹配的 rule 中的 payid;
3、继续匹配/,然后又是一个([0-9]+),道理一样,用来匹配 rule 中的 categoryid;
4、继续匹配/,(.*?).htm 匹配任何以.htm 为后缀名,由任何数字或者字符为前缀;
5、最后,$ 表示匹配匹配字符串结尾。
第二部分:到哪里去?
这里就不详细介绍了,该规则是常规的动态 URL 的解析。以上规则生效之后,会将URL:
http://example.com/pay/25/8/...
转换为
http://example.com/pay.php?pa...
最后的配置界面如下图所示:
配置测试
以上规则已经编写完毕,如何进行调试,确保以上规则书写正确,这个时候需要使用到调试模式,默认为开启状态。可以使用命令行工具 curl 即可对规则进行调试:
1.curl-H"X-Upyun-Rewrite-Preview: true"http://example.com//pay/25/8/... -v
正式启用
以上经过调试,确定该 Rewrite 过程符合预期后,即可将调试模式关闭,此时该 Rewrite 过程会对所有命中的请求生效。
成功案例
URL 重定向
1.rule:$WHEN($NOT($EQ($_URI,/live.html)),
$NOT($_COOKIE_token))$REDIRECT($_SCHEME://$_HOST/live.html)
规则解释:当cookie中token值为空时,则跳转到指定到地址$_SCHEME://$_HOST/live.html。
修改 HTTP 头部
1.rule:$DEL_REQ_HEADER(If-Range)
规则解释:删除If-Range请求头,忽略if-range头部。
更多案例请参见地址:https://www.zybuluo.com/wuxue...( 访问密码:upyun )
核心价值
总结下,又拍云自定义 Rewrite 具有如下优势及价值,罗列如下:
1、可以配合网站将动态 URL 转换为语义 URL,以改善搜索引擎索引编制,从而提高 SEO 排名;
2、在又拍云的边缘网络中执行前向重写逻辑,避免对数据中心来回提出请求,从而提高服务性能并减轻工作量 ;
3、应用程序开发者可以利用 URL 改写这个机制来将参数隐藏起来,可避免让网络上的恶意用户收集到有利于发动攻击的信息
4、充分利用又拍云 CDN 平台的性能及规模,可靠且可扩展,服务能力可以得到最大化;
5、充分利用又拍云 CDN 边缘网络的计算能力,减轻客户源站计算压力,进而节省资金开销,有效降低成本;
6、基于 CDN 平台,可以快速部署和下发,全网可以在一分钟之内生效;
如何利用动态URL提升SEO及处理业务逻辑的更多相关文章
- 网站URL如何SEO优化
前言 本文讲解网站的URL如何进行SEO优化,并在自己的WordPress博客echeverra中优化URL. 起因 对于SEO我了解的并不多,只知道SEO做的好,那么各大搜索网站搜索你网站相关内容时 ...
- 17_AOP入门准备_Salay案例(利用动态代理)
[案例分析] 查看Salary: 1.启动日志 2.启动安全性的框架 3.检查权限:如果有查看工资的权限,则查看工资,否则提示"权限不足" [工厂截图] [SalaryManage ...
- [ASP.NET MVC] 利用动态注入HTML的方式来设计复杂页面
原文:[ASP.NET MVC] 利用动态注入HTML的方式来设计复杂页面 随着最终用户对用户体验需求的不断提高,实际上我们很多情况下已经在按照桌面应用的标准来设计Web应用,甚至很多Web页面本身就 ...
- thinkphp之url的seo优化
1.网站url做seo优化的原因 SEO是由英文Search Engine Optimization缩写而来, 中文意译为“搜索引擎优化”.SEO是指通过对网站进行站内优化(网站结构调整.网站内容建设 ...
- 利用动态图层实现数据的实时显示(arcEngine IDynamiclayer)
marine 原文利用动态图层实现数据的实时显示(arcEngine IDynamiclayer) 说明:最近一个项目用到这方面知识,文章主要来至网络,后期会加入自己的开发心得.(以下的代码实例中,地 ...
- 动态URL是什么?动态URL有什么特点?
动态URL是什么动态URL就是动态页面,动态链接,即指在URL中出现“?”这样的参数符号,并以aspx.asp.jsp.php.perl.cgi为后缀的url. 动态URL有什么特点1.在建设反向链接 ...
- 如何利用微博客进行seo赚钱营销
http://www.wocaoseo.com/thread-130-1-1.html 我们知道做SEO就是用人的思维来模仿搜索引擎的习惯,尽量适应seo的规则,并按照搜索引擎的规则和习惯 ...
- Feign实现动态URL
需求描述 动态URL的需求场景: 有一个异步服务S,它为其他业务(业务A,业务B...)提供异步服务接口,在这些异步接口中执行完指定逻辑之后需要回调相应业务方的接口. 这在诸如风控审核,支付回调等场景 ...
- c# 利用动态库DllImport("kernel32")读写ini文件(提供Dmo下载)
c# 利用动态库DllImport("kernel32")读写ini文件 自从读了设计模式,真的会改变一个程序员的习惯.我觉得嘛,经验也可以从一个人的习惯看得出来,看他的代码编写习 ...
随机推荐
- Java常量笔记
在添加文件名的同时,文件名和内容可以不相同!! 1·Java 常量 常量就是固定不变的量,一旦被定义,它的值就不能被改变. 例实: 书中的代码不全,在这里不补充一下: 书中的源代码: public c ...
- Sublime Text 3常用插件
操作:按下Ctrl+Shift+P调出命令面板 输入install 调出 Install Package 选项并回车,然后在列表中选中要安装的插件. 常用插件: 1---- Bracket Highl ...
- iframe 自适应内容高度
在使用iframe的时候,会出现iframe不能随着内容的高度自动改变的情况,下面就介绍一种可以自适应高度的办法.<br/> <pre> <iframe id=" ...
- .net core 持续构建简易教程
环境需求:jenkins和.netcore 由于jenkins在真机上的部署比较麻烦,所以在这里我使用基于jenkins的Docker,只要任何一台运行docker的环境都可以进行以下的操作. doc ...
- Android -- 自定义ViewGroup+贝塞尔+属性动画实现仿QQ点赞效果
1,昨天我们写了篇简单的贝塞尔曲线的应用,今天和大家一起写一个QQ名片上常用的给别人点赞的效果,实现效果图如下: 红心的图片比较丑,见谅见谅(哈哈哈哈哈哈).... 2,实现的思路和原理 从上面的效果 ...
- 老李分享:DBA
poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:908821478,咨询电话010-845052 ...
- 老李分享:Mac快捷键
poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:908821478,咨询电话010-845052 ...
- React Native 导入原生Xcode项目总结与记录
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...
- CSS3选择器~一看吓一跳,这么多不会
复习CSS时发现很多选择器不会,因为平时很少用到.现在干脆一不做二不修,全部温习一遍.本文参考http://css.doyoe.com/. 一.元素选择器 图片来自:http://css.doyoe. ...
- Lombok : 让你写 Java代码像C#一样爽
前言 我曾经是一名 .Net 开发,如今的我是一名 Java 开发者.在我享受着 Java 成熟的生态时,我常常怀念 c# 简洁的语法:自动属性.类型推断.自动初始化器 .... 鱼,我所欲也,熊掌亦 ...