.Net Core Url重写

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

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

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

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

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

1
env.WebRootPath:这个是获取该站点wwwroot的文件夹路径
1
2
3
4
5
6
7
8
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);
            }
    }

  这是

1
ApacheModRewrite.txt的文件内容,照着写就行了。具体含义看<a href="https://httpd.apache.org/docs/2.4/rewrite/remapping.html" target="_blank" rel="noopener nofollow">Apache官网</a>
1
2
RewriteEngine  on
RewriteRule    "^/folomi[.]html$"  "/Home/Index"

  

本文作者:仲夏不凉爽

本文链接:https://www.cnblogs.com/xiangshifu/p/16966241.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   仲夏不凉爽  阅读(182)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.