2012-09-19 40 views
1

我在.NET 3.5 Framework中使用MVC 1.0。我有一位客戶希望網址顯示爲www.example.com而不是www.example.com/{controller}/{action}/{id}MVC - 重寫URL以僅顯示域

  1. 該網站上使用IIS 6
  2. 我沒有到這臺服務器直接訪問託管服務器。

考慮到這一點,可以這樣做嗎?

有人建議使用ISAPI_REWRITE。我找到了一些例子,但沒有一個能夠真正解釋需要做什麼。

或者,如果這不能在整個網站上完成。它可以在主頁上完成嗎?

下面是我此刻的路由:

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
    // Catch all route 
    routes.MapRoute(
    "Default", // Name 
    "{lang}/{controller}" + System.Configuration.ConfigurationManager.AppSettings["extension"] + "/{action}/{*values}", // URL - ["extension"] being .aspx for IIS 6 
    new { lang = "EN", controller = "Content", action = "Index" } // Defaults); 
} 

在此先感謝。

回答

1

你應該寫

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

    routes.MapRoute(
     "HomeIndex", // Name 
     "", 
     new { lang = "EN", controller = "Home", action = "Index" } // Defaults); 


    // Catch all route 
    routes.MapRoute(
    "Default", // Name 
    "{lang}/{controller}" + System.Configuration.ConfigurationManager.AppSettings["extension"] + "/{action}/{*values}", // URL - ["extension"] being .aspx for IIS 6 
    new { lang = "EN", controller = "Content", action = "Index" } // Defaults); 
} 
+0

由於薩莎。這,我假設,將只是重寫主頁的網址,對嗎? – Ic3m4n69

+0

感謝您的支持。顯然,客戶只想讓網站的主要着陸頁/主頁除了域之外沒有任何東西。這幫了很多。 – Ic3m4n69

+0

嗨,我已經應用了這個概念,但不起作用。我的要求是一樣的:如果用戶輸入'website.com/Home'或'website.com/Home/Index',它應該在瀏覽器的地址欄中輸入www.website.com。目前它顯示「www.website.com/Home/Index」。如果我失去了一些東西,你能建議我嗎? –