zoukankan      html  css  js  c++  java
  • 如何利用动态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 平台,可以快速部署和下发,全网可以在一分钟之内生效;

  • 相关阅读:
    URAL 2034 : Caravans (二分最短路)
    Qt程序的字符编码方式
    Qt程序国际化
    Qt5 + msvc2015编译器 环境配置 (不安装VS)
    error: undefined reference to `Dialog::on_pushButton_clicked()'在程序代码的后台程序代码出现问题
    Qt的inherits()函数判断qt控件是否为某个类实例
    WPS使用书签跳转到指定的文档位置
    Qt error ------ 出现Error
    环境名词
    source insight 联想出Qt库函数
  • 原文地址:https://www.cnblogs.com/upyun/p/6856153.html
Copyright © 2011-2022 走看看