Skip to content

Url重写

Henry edited this page Oct 21, 2019 · 12 revisions

通过Url重写可以让访问的Url更元化和友好性,组件在1.6.9针对Url重写进行的优化调整,以支持完善的Url重写功能。

配置

可以通过HttpApiServer.UrlRewrite.Add方法来添加Url重写规则.

  server.UrlRewrite.Add("/cate/{0}.html", "/index.html");

以上重写是把/cate/下面的所有html重写到index.html.

配置文件

如果不想通过写代码来完成,可以配置目录下的rewrite.json文件(不存在则自行添加)

[
  {
    "Url": "/cate/{0}.html",
    "Rewrite": "/index.html"
  }
]

详细描述

组件对Url重写的依据是BaseUrl基础访问路径进行匹配,匹配方式不匹分大小写。通过{name}来描述一个Url的可变部分,name是一个变量名,这个变量可以在重写Url部分使用,一个Url可以有多个变量描述.

  • 示例一
        {
            "Url": "/api/customers/{count}",
            "Rewrite": "/customers/{count}"
        }
  • 示例二
        {
            "Url": "/api/{user}/{id}",
            "Rewrite": "/api/{user}?id={id}"
        }
  • 官方blog
            server.UrlRewrite.Add("/cate/{0}.html", "/index.html", "html")
                .Add("/search/{0}.html", "/index.html", "html")
                 .Add("/tag/{0}.html", "/index.html", "html")
                  .Add("/blog/{0}.html", "/blog.html", "html")
                  .Add("/photos/{0}.html", "/photos.html", "html");

以上是 http://ikende.com/blog/ 的一个重写规则,把分类,标签和查询都路由到index.html页面处理了。

Clone this wiki locally