我正在使用帶有自定義URL的服務器:http://example.com/site/,正如您所見,我需要將我的應用程序的默認根路徑(「/」)更改爲防止404錯誤。使用帶有出站規則的IIS重寫模塊似乎可行,將所有html鏈接和引用正確轉換爲查詢內部網站。問題是當在我的控制器中使用Redirect()
或RedirectToAction()
方法時,網站的內部名稱被刪除,從而導致404錯誤。這是我的IIS出站規則:更改ASP.NET MVC或IIS中的URL根路徑
<rewrite>
<outboundRules>
<rule name="Add path prefix to urls" stopProcessing="true">
<match filterByTags="A, Form, Img, Link, Script" pattern="^/(.*)" />
<action type="Rewrite" value="/site{R:0}" />
</rule>
</outboundRules>
</rewrite>
所以澄清:我有http://example.com/site/當重定向發生帳戶/登錄,成爲http://example.com/account/login,而不是http://example.com/site/account/login。我想RouteConfig必須修補,但我不知道如何,或者如果我可以在IIS中執行此操作。我在RouteConfig類中有以下內容:
routes.MapRoute(
name: "SiteRoot",
url: "site/{controller}/{action}",
defaults: new { controller = "Home", action = "Index" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}",
defaults: new { controller = "Home", action = "Index" }
);
謝謝。
爲什麼不只是在您的網站目錄(www.example.com)下創建一個名爲site的虛擬目錄並將代碼複製到那裏。它會以你想要的方式工作。 – pjobs
@pjobs我不能,服務器的根目錄是example.com/site/,如果我創建一個虛擬目錄,那麼我會有example.com/site/site/ – Adrianne