首页 新闻 会员 周边 捐助

ASP.NET Core url 重点向不起作用

0
悬赏园豆:50 [已解决问题] 解决于 2019-11-04 11:11

我在StartUp.cs中已经配置了

  app.UseRewriter(new RewriteOptions()
                .AddRedirect(@"r?postId=(\d+)&index=(\d+)", "blogpost/$1?page=$2", (int) HttpStatusCode.Redirect)
            );

为什么访问了地址:http://localhost:5000/r?postId=1&index=2
仍然不跳转呢?

Shendu.CC的主页 Shendu.CC | 老鸟四级 | 园豆:2138
提问于:2019-11-03 13:22
< >
分享
最佳答案
0

可以通过实现一个IRule接口,自定义重定向规则,然后通过RewriteContext拿到你想要的路由参数。

public class RedirectDefaultRequest : IRule
{
    public void ApplyRule(RewriteContext context)
    {
        var request = context.HttpContext.Request;
       if(....) 
       {
           var response = context.HttpContext.Response;
            response.StatusCode = StatusCodes.Status301MovedPermanently;
            context.Result = RuleResult.EndResponse;
            response.Headers[HeaderNames.Location] = '新地址'
       }
        
    }
}

最后不要忘记在Startup.cs中注册一下。

var options = new RewriteOptions().Add(new RedirectDefaultRequest());
  app.UseRewriter(options);
收获园豆:40
ohyex | 小虾三级 |园豆:1696 | 2019-11-03 13:47
其他回答(1)
0

?需要转义

收获园豆:10
dudu | 园豆:29568 (高人七级) | 2019-11-03 14:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册