【问题标题】:asp.net core rewrite middleware not rewriting, possible regex issueasp.net 核心重写中间件不重写,可能的正则表达式问题
【发布时间】:2017-03-23 14:10:05
【问题描述】:

(我使用的是VS2017和asp.net core v1.1.1) 你好,

我试图让我的 url 对 seo 更友好,我已经通过 nuget 添加了 .net 核心重写中间件,并遵循本指南 https://docs.microsoft.com/en-us/aspnet/core/fundamentals/url-rewriting

由于某种原因,我的 URL 没有被重写。 我的 URL 目前是 /Albums?slug=first-test,我希望它们是 Albums/first-test

这是我想出的(来自 startup.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 并且我希望我可以为两者都采用一条规则。

【问题讨论】:

    标签: iis url-rewriting asp.net-core middleware


    【解决方案1】:

    所以,看来我犯了一个菜鸟错误。我需要做的就是绘制新路线! 我注意到 Controller/Action/id 没有包含 ?id= 这让我想起了我早期的学习,实际上是第一天,哈哈。所以这是我添加的内容:

        app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "default",
                template: "{controller=Home}/{action=Index}/{slug?}");
    
        });
    

    编辑: 最后更改了可选,因为添加新路线破坏了我的主页索引。

    【讨论】:

      猜你喜欢
      • 2011-01-11
      • 1970-01-01
      • 1970-01-01
      • 2011-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多