public void PathRoute() { var url = new Uri("http://163.com/News/Test/1"); { var pathSegments = PathSegments.Create(url.AbsolutePath); var template = new RewritePathTemplate("/{path*}"); var values = template.GetRouteValues(pathSegments); Assert.AreEqual(values.Count, 1); Assert.AreEqual(values.Keys.First(), "path"); Assert.AreEqual(values.Values.First(), "News/Test/1"); Assert.AreEqual(values["path"], "News/Test/1"); } { var template = new RewriteRequestTemplate("http://163.com/news/{path*}"); var values = template.GetRouteValues(new RouteRequestData(new HttpRequestMessage(HttpMethod.Get, url))); Assert.AreEqual(values.Count, 1); Assert.AreEqual(values.Keys.First(), "path"); Assert.AreEqual(values.Values.First(), "Test/1"); Assert.AreEqual(values["path"], "Test/1"); } }
public void Host2() { var template = new RewriteRequestTemplate("//{host}.163.com/{path*}"); Assert.AreEqual(template.HostTemplate.ToString(), "{host}.163.com"); Assert.AreEqual(template.PathTemplate.ToString(), "{path*}"); }
/// <summary> /// insert a rewrite rule to pipeline /// </summary> /// <param name="pipeline">upstream pipeline</param> /// <param name="upstreams">upstream rule, or called route rule.</param> /// <param name="downstream">downstream rule, or called rewrite rule</param> /// <returns>pipeline with rewrite rule</returns> public static IHttpPipeline Rewrite(IHttpPipeline pipeline, RewriteRequestTemplate[] upstreams, RewriteRequestTemplate downstream) { var rewriter = new RewriteRule(upstreams, downstream); return(pipeline.JoinPipeline(rewriter)); }
/// <summary> /// insert a rewrite rule to pipeline /// </summary> /// <param name="pipeline">upstream pipeline</param> /// <param name="template">rewrite template.</param> /// <returns>pipeline with rewrite rule</returns> public static IHttpPipeline Rewrite(IHttpPipeline pipeline, RewriteRequestTemplate template) { var rewriter = RewriteRule.Create(template); return(pipeline.JoinPipeline(rewriter)); }
/// <summary> /// insert a rewrite rule to pipeline /// </summary> /// <param name="pipeline">HTTP pipeline</param> /// <param name="upstreams">upstream rule, or called route rule.</param> /// <param name="downstream">downstream rule, or called rewrite rule</param> /// <returns>pipeline with rewrite rule</returns> public static IHttpPipeline Rewrite(IHttpPipeline pipeline, RewriteRequestTemplate[] upstreams, RewriteRequestTemplate downstream) => pipeline.Join(RewriteRule.Create(upstreams, downstream));
/// <summary> /// insert a rewrite rule to pipeline /// </summary> /// <param name="pipeline">upstream pipeline</param> /// <param name="template">rewrite template.</param> /// <returns>pipeline with rewrite rule</returns> public static IHttpPipeline Rewrite(IHttpPipeline pipeline, RewriteRequestTemplate template) => pipeline.Join(RewriteRule.Create(template));