2012-09-19 44 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”。如果我失去了一些东西,你能建议我吗? –