zoukankan      html  css  js  c++  java
  • Aspnet core route rewrite

    设置默认http跳转到https

    创建一个空的MVC项目。找到Startup.cs文件中的 Configure方法。在 app.UseRouting(); 前加上两行代码即可。注:我本地项目中Http端口为:51812。如果运行过一次http://localhost:51812。将会被跳转到https://localhost:44319。第二次运行即使去掉下面新加的两句话也会跳转。因为在上次访问中使用的是301跳转。

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
    
        //301 代表永久跳转 44319 对应的https端口。我的开发环境为44319
        var options = new RewriteOptions().AddRedirectToHttps(301, 44319);  //新加的   
        app.UseRewriter(options);                                           //新加的
    
        app.UseRouting();
    
        app.UseEndpoints(endpoints =>
        {
            endpoints.MapGet("/", async context =>
            {
                await context.Response.WriteAsync("Hello World!");
            });
        });
    }
    

      301 代表永久跳转, 44319 对应的是https端口。我的开发环境为44319。在实际生产环境中可以使用下面写法代替。

    var options = new RewriteOptions().AddRedirectToHttpsPermanent();
    app.UseRewriter(options);

      URL 重写

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
    
        /*开始*/
        var options = new RewriteOptions()
        .AddRedirect("redirect-rule/(.*)", "redirected/$1")
        .AddRewrite(@"^rewrite-rule/(d+)/(d+)", "rewritten?var1=$1&var2=$2", skipRemainingRules: true);
        app.UseRewriter(options);
        /*结束*/
    
        app.UseStaticFiles();
        app.Run(context => context.Response.WriteAsync(
            $"Rewritten or Redirected Url: " +
            $"{context.Request.Path + context.Request.QueryString}"));
    }
    

    AddRedirect中的第一个参数是正则匹配用户转进来的路径,第二个参数是替换后的路径。

    AddRewrite 中第一个参数是正则匹配用来匹配URL,第二个参数为重写后的路径,第三个参数为是否跳过剩下的规则。

  • 相关阅读:
    【Oracle】ORA-00257:archiver error. Connect internal only, until freed 错误的处理方法
    【SQL】区分新来顾客和再访顾客
    【Xcelsius】在PPT中嵌入水晶易表Xcelsius2008仪表盘
    【SAP BO】【WEBI】【转】Webi实现动态选择度量
    【转】Xcelsius2008 水晶易表问题 部分汇总
    如何进行有效的需求调研
    实现数据仓库的七个步骤、七个禁忌、七种思路
    UTC日期转时间戳
    WIN10下命令行禁用编辑模式
    让socket端口不被子进程继承
  • 原文地址:https://www.cnblogs.com/lookforFree/p/14552928.html
Copyright © 2011-2022 走看看