.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 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步