Exemplo n.º 1
0
        public static void SetupHttpsRedirection(this IApplicationBuilder app, IConfiguration config)
        {
            if (bool.Parse(config["Https:Enabled"]))
            {
                app.UseHttpsRedirection();
            }

            var options = new RewriteOptions().Add(c =>
            {
                if (c.HttpContext.Request.Path.Equals("/tag") && c.HttpContext.Request.Query.ContainsKey("tag"))
                {
                    c.Result = RuleResult.EndResponse;
                    c.HttpContext.Response.Redirect("/tag/" + HttpUtility.UrlEncode(c.HttpContext.Request.Query["tag"]), true);
                }

                if ((c.HttpContext.Request.Path.Equals("/search") || c.HttpContext.Request.Path.Equals("/s")) && c.HttpContext.Request.Query.ContainsKey("wd"))
                {
                    c.Result = RuleResult.EndResponse;
                    c.HttpContext.Response.Redirect("/search/" + HttpUtility.UrlEncode(c.HttpContext.Request.Query["wd"]).Replace("+", "%20"), true);
                }
            }).AddRewrite(@"\w+/_blazor(.*)", "_blazor$1", false);

            switch (config["UseRewriter"])
            {
            case "NonWww":
                options.AddRedirectToNonWww(301);     // URL重写
                break;

            case "WWW":
                options.AddRedirectToWww(301);     // URL重写
                break;
            }

            app.UseRewriter(options);
        }