[译]ASP.NET Core 2.0 网址重定向
2017-11-15 00:00
253 查看
问题
如何在ASP.NET Core 2.0中实现网址重定向?答案
新建一个空项目,在Startup.cs文件中,配置RewriteOptions参数并添加网址重定向中间件(UseRewriter):在地址栏输入:http://localhost:56825/actors,再次观察重定向过程:
讨论
网址重定向就是根据用户自定义规则来修改请求的网址,目的是为了将服务器资源和浏览器网址解绑定。这样做可能是出于安全考虑, 搜索引擎优化(SEO),用户友好网址,将HTTP重定向到HTTPS等多种目的。当你无法使用Web服务器(IIS,Apache,Nginx)的重定向功能时,ASP.NET Core提供了一个可选项 - 请求网址重定向中间件。然后它的性能和功能比不上Web服务器的重定向。
重定向中间件可以做两件事情:客户端重定向和服务器重写:
重定向(客户端)
这是一个客户端操作,工作流程如下:1. 客户端请求一个资源,比如 /films
2. 服务器返回301(Moved Permanently)或者302(Found)状态码,并在响应头中添加Location属性,用来指示浏览器请求新的地址(比如/movies)。
3. 客户端请求新的地址,并显示在浏览器的地址栏中。
重写(服务端)
它是一个服务器端操作,工作流程如下:1. 客户端请求一个资源,比如 /actors
2. 服务器将其内部映射到新的地址(比如/stars)并且返回200(OK)。
在此过程中,客户端并不知道服务器端的内部映射操作,因此用户看到的浏览器地址栏依然显示的是最初请求地址。
规则
重定向和重写规则可以是正则表达式,更加详细的信息请参考:https://docs.microsoft.com/en-gb/aspnet/core/fundamentals/url-rewriting自定义重定向规则
我们也可以自定义重定向规则,通过一个继承自IRule接口的类来实现:源代码下载
原文:https://tahirnaushad.com/2017/08/18/url-rewriting-in-asp-net-core/
.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com
相关文章推荐
- [译]ASP.NET Core 2.0 网址重定向
- 详解ASP.NET Core 2.0 路由引擎之网址生成(译)
- Asp.Net Core 2.0 项目实战(6)Redis配置、封装帮助类RedisHelper及使用实例
- asp.net core高级EF Core2.0数据模型设计创建
- 一步一步带你做WebApi迁移ASP.NET Core2.0
- Asp.net Core 2.0+EntityFrameWorkCore 2.0添加数据迁移
- 什么是ASP.NET Core 2.0?
- 用asp.net core 2.0 + EFCore.Sqlite做个小网站
- 基础教程:ASP.NET Core 2.0 MVC筛选器
- ASP.NET Core 2.0中的Azure Blob存储
- ASP.NET Core2.0 环境下MVC模式的支付宝PC网站支付接口-沙箱环境开发测试
- ASP.NET Core 2.0 依赖注入
- 使用 Asp.net core 2.0 + Angular 4 构建车辆管理的Web应用程序
- ASP.NET Core 2.0 特性介绍和使用指南
- Asp.Net Core 2.0 项目实战(7)MD5加密、AES&DES对称加解密
- ASP.NET Core 2.0 MVC项目实战
- Ubuntu & GitLab CI & Docker & ASP.NET Core 2.0 自动化发布和部署(1)
- asp.net core 2.0 bundleconfig.json
- 为什么你需要将代码迁移到ASP.NET Core 2.0?
- ASP.NET Core 2.0 支付宝当面付之扫码支付