【问题标题】:MVC - Rewrite URL to display domain onlyMVC - 重写 URL 以仅显示域
【发布时间】:2012-09-19 21:33:19
【问题描述】:

我在 .NET 3.5 框架中使用 MVC 1.0。我有一个客户希望 URL 显示为 www.example.com 而不是 www.example.com/{controller}/{action}/{id}.

  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);
 }

提前致谢。

【问题讨论】:

    标签: c# asp.net-mvc url-rewriting


    【解决方案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);
     }
    

    【讨论】:

    • 谢谢萨沙。我假设这只会重写主页 url,对吗?
    • 谢谢。显然,客户只希望网站的主要登录页面/主页除了域之外没有任何内容。这帮助很大。
    • 嗨,我已经应用了这个概念,但不起作用。我的要求是一样的:如果用户输入website.com/Homewebsite.com/Home/Index,它应该在浏览器的地址栏中www.website.com。目前它显示www.website.com/Home/Index。如果我遗漏了什么,你能建议我吗?
    • 如果你去 website.com 会和 website.com/Home/Index 一样吗?
    猜你喜欢
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-09
    • 1970-01-01
    • 1970-01-01
    • 2011-04-23
    • 2016-03-28
    相关资源
    最近更新 更多