ASP.NET Core中使用URL重写

本文介绍如何在ASP.NET Core 1.1 Preview 1中使用URL Rewriting中间件实现URL重定向功能。通过示例演示如何将特定URL重定向到另一个路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ASP.NET Core 1.1 Preview 1 中新增了 URL Rewriting middleware ,终于可以进行 URL 重写了,实际使用体验一下。

首先要将 ASP.NET Core 项目升级至 .NET Core 1.1 Preview 1(参考 .NET跨平台之旅:将示例站点升级至 .NET Core 1.1 Preview 1 ),然后在 project.json 添加 "Microsoft.AspNetCore.Rewrite" 的引用并运行 donet restore 安装对应的nuget包。

"dependencies": {
    "Microsoft.AspNetCore.Rewrite": "1.0.0-preview1-final"
}

接着在 Startup.cs 的 Configure() 方法中通过 app.UseRewriter() 配置重写规则,比如要将 http://about.cnblogs.com/ 重写为 http://about.cnblogs.com/about/intro ,可以这么写:

public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory, IHostingEnvironment env)
{
    app.UseRewriter(new RewriteOptions().AddRewrite("^$", "about/intro", true));
}

AddRewrite的第1个参数("^$")是匹配重写前的URL的正则表达式,第2个参数("about/intro")是重写后的URL,第3个参数(true)表示匹配成功1条规则后是否放弃后续规则的匹配。

对于URL匹配,还是微软的老规矩,URL的开头没有斜杠,我个人比较喜欢以斜杠开头:

//不支持的写法
app.UseRewriter(new RewriteOptions().AddRewrite("^/$", "/about/intro", true));

需要注意的是 app.UseRewriter() 要放在 app.UseMvc(),app.UseMvcWithDefaultRoute(),app.UseRouter() 之前。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值