.Net Core Url重写

在工作中经常会遇到一个控制器实现多个页面内容的效果,在常规做法中,直接用   Controller / Action 访问,这会导致一个问题,就是不利于你网站SEO的。这个时候,我们需要对每一个不同的页面,使用不同的页面路径来访问,这个时候有很多种解决方法,比如说控制器的重载,等等之类,但是最简单的方式是使用URL重写

URL重写可以让用户在访问该链接的时候,服务器收到该链接请求,然后解析,并重写该连接请求,然后返回响应结果,这个过程客户端的访问链接不会进行重载跳转。也就是说客户端的链接不会发生改变,因为这个改变是在服务器内部发生的。

这个时候,我们使用批量重载的时候,就可以使用配置文件,文件规则请去查看Apache官网,里面有详细的介绍。

具体代码我们以.Net Core 3.1框架来展示

具体含义就是,用IO读取Apache配置文件,然后注册重写中间件,把文件注入到Apache的重写中间件中。这样就实现了伪静态路由的实现

env.WebRootPath:这个是获取该站点wwwroot的文件夹路径
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
 using (StreamReader apache=new StreamReader($"{env.WebRootPath}/ApacheModRewrite.txt"))
            {
                var option = new RewriteOptions().AddApacheModRewrite(apache);
                app.UseRewriter(option);
            }
    }

  这是

ApacheModRewrite.txt的文件内容,照着写就行了。具体含义看Apache官网
RewriteEngine  on
RewriteRule    "^/folomi[.]html$"  "/Home/Index"

  

posted @ 2022-12-08 15:29  仲夏不凉爽  阅读(177)  评论(0编辑  收藏  举报