2017-04-25 67 views
0

我試圖實現的是: 當有人訪問:smartphone.webshop.nl/home/index 我想將其從中間件重定向到:webshop .nl/smartphone/home/index是否可以在.net核心中重定向來自中間件的請求

我想這樣做是因爲我想創建一個通用控制器,它可以從基於sub-domein的數據庫獲取數據。所以我需要所有的呼叫來到同一個控制器。

這是我現在的中間件:

public Task Invoke(HttpContext context) 
    { 
     var subDomain = string.Empty; 

     var host = context.Request.Host.Host; 

     if (!string.IsNullOrWhiteSpace(host)) 
     { 
      subDomain = host.Split('.')[0]; // Redirect to this subdomain 
     } 

     return this._next(context); 
    } 

我如何可以重定向和我的控制器/ MVC配置應該看怎麼樣?

我對.net core很新,所以請在你的回答中明確。謝謝。

+0

你看過'context.Response.Redirect'嗎? – ColinM

+0

@ColinM是的,我做到了。返回一個302並重寫url。但我不想那樣。我希望url能夠保持原樣並僅在代碼中重定向。 – apero

回答

3

這就是所謂的URL重寫和ASP.NET核心已經有special middleware爲(在包Microsoft.AspNetCore.Rewrite

檢查文檔,可能是你可以用它「原樣」。

如果不是 - 你可以check source code並寫你自己的。

+0

非常感謝@Dmitry – apero

相關問題