Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex .net核心重写模块无限循环中重定向的正则表达式_Regex_Reactjs_Url Rewriting_Asp.net Core_.net Core - Fatal编程技术网

Regex .net核心重写模块无限循环中重定向的正则表达式

Regex .net核心重写模块无限循环中重定向的正则表达式,regex,reactjs,url-rewriting,asp.net-core,.net-core,Regex,Reactjs,Url Rewriting,Asp.net Core,.net Core,我试图在我的.netcore应用程序中加入URL重写中间件,由于某种原因,在试图定义重定向正则表达式规则时,它进入了一个无限循环 我正在使用.netcore1.1和带有React路由器(客户端)路由的React.JS应用程序。本质上,我希望在根目录之外输入或刷新的任何显式url只重定向到根目录。给我一个无限循环的规则是: app.UseRewriter(new RewriteOptions() .AddRedirect("(.*)", "/") ); 据我所知,重写器已经考虑了基本域,

我试图在我的
.netcore
应用程序中加入URL重写中间件,由于某种原因,在试图定义重定向正则表达式规则时,它进入了一个无限循环

我正在使用
.netcore1.1
和带有React路由器(客户端)路由的
React.JS
应用程序。本质上,我希望在根目录之外输入或刷新的任何显式url只重定向到根目录。给我一个无限循环的规则是:

app.UseRewriter(new RewriteOptions()
    .AddRedirect("(.*)", "/")
);
据我所知,重写器已经考虑了基本域,因此我不必担心检查类似
(^http://localhost:8080)
。我相当肯定我上面的简单正则表达式会起作用


谢谢你的帮助。对于那些不熟悉它的人来说,最重要的是。

正则表达式的问题是它甚至与根url匹配:

var str = "/";
Console.WriteLine($"Output: {Regex.Match(str, "(.*)")}");

>>> Output: /
因此,您需要将
*
替换为
+
,从而从中排除根目录,因此
/
后面必须至少有一个字符:

app.UseRewriter(new RewriteOptions()
    .AddRedirect("(.+)", "/")
);