(我正在使用VS2017和 asp.net 核心v1.1.1(你好
我正在尝试使我的网址对 SEO 更友好,我已经通过 nuget 添加了 .net 核心重写中间件,并按照本指南 https://learn.microsoft.com/en-us/aspnet/core/fundamentals/url-rewriting
由于某种原因,我的 URL 没有被重写。我的网址目前是/Albums?slug=first-test,我希望它们是 Albums/first-test
这是我想出来的(从启动.cs(:
var options = new RewriteOptions()
.AddRewrite(@"^(.*)?slug=(.*)", "$1/$2", skipRemainingRules: true)
.AddRewrite(@"^Albums?slug=(.*)", "Albums/$1", skipRemainingRules: true);
app.UseRewriter(options);
如您所见,我正在尝试 2 个变体,我希望有相同的结果,这是因为我也有/Galleries?slug=first-test,我希望我能同时为两者制定一条规则。
所以,看来我犯了一个菜鸟错误。 我需要做的就是绘制新路线!我注意到控制器/动作/id 不包含 ?id=,这让我想起了我早期的学习日子,事实上是第一天,哈哈。 所以这是我添加的内容:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{slug?}");
});
编辑:最后更改了可选内容,因为添加新路由会破坏我的主页索引。