我无法正确写入URL重写中间件.我认为正则表达式是正确的.我第一次使用这个功能,也许我不明白.
示例网址:
http://localhost:55830/shop/alefajniealsdnoqwwdnanxc!@#lxncqihen41j2ln4nkzcbjnzxncas?valueId=116
http://localhost:55830/shop/whatever?valueId=116
http://localhost:55830/shop/toquestionmark?valueId=116
Run Code Online (Sandbox Code Playgroud)
正则表达式:
\/shop\/([^\/?]*)(?=[^\/]*$)
Run Code Online (Sandbox Code Playgroud)
启动,配置:
var rewrite = new RewriteOptions().AddRewrite(
@"\/shop\/([^\/?]*)(?=[^\/]*$)",
"/shop/$1",
true
);
app.UseRewriter(rewrite);
Run Code Online (Sandbox Code Playgroud)
也许与其他方法有关的订单有问题吗?
控制器:
[Route(RouteUrl.Listing + RouteUrl.Slash + "{" + ActionFilter.Value + "?}", Name = RouteUrl.Name.ShopBase)]
public ActionResult Index(string value, int valueId)
{
return View();
}
Run Code Online (Sandbox Code Playgroud)
例如,当我重定向到:
我想像这样显示网址: