2017-04-13 67 views
0

我想在我的.Net Core應用程序中併入URL重寫中間件,並由於某種原因,當試圖定義重定向正則表達式規則時,它會進入無限循環。正則表達式重定向在.net核心重寫模塊無限循環

我使用.NET Core 1.1React.JS應用程序與react-router(客戶端)路由。基本上我想要任何明確的URL輸入或刷新超出根目錄只是重定向到根。這是給我一個無限循環的規則是這樣的:

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

據我所知,重寫器已經考慮到了基本域,所以我不擔心檢查類似(^http://localhost:8080)。我相當肯定我上面的簡單正則表達式應該工作。

任何幫助表示讚賞。對於那些不熟悉的人,url rewriting package is here

回答

0

與您正則表達式的問題是,它甚至根本URL匹配:

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

>>> Output:/

所以,你需要從它排除你的根,用+更換*,所以/後必須有至少一個字符:

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