2010-07-13 96 views
0

所以我正在一个项目有多个领域,我们想配置IIS重写我们的请求,使URL更好。我一整天都在使用URL重写模块,并且无法获得理想的结果。IIS7 URL重写+子域+ ASP.Net MVC2

例子:

我现在有一个很长的URL,如“http://register.example.com/Registration/Register/New”,其中面积=注册,控制器=注册... 我想用户通过“http://register.example.com”请求的网站,它击中寄存器控制器,我已配置为默认为“新建”操作。因为我给了注册的子域名,IIS知道它将使用“注册”区域。

终点URL会是这样的 'http://register.example.com/Register/Finish'

这可能吗?

感谢, 约翰

回答

1

看到如何您已经于您的标签标注MVC,你意识到你可以用一个途径做到这一点。

''# Default Catch All MapRoute 
    routes.MapRouteLowercase(_ 
     "Registration", _ 
     "{controller}/{action}/{step}", _ 
     New With {.controller = "Register", .action = "Registration", .step = "New"}) 

然后,您只需在IIS中创建一个单独的“网站”以承载注册应用程序。


PS ... IMO子域是你所描述的实施高估,经常坏的做法。子域用于描述一台物理计算机(IE的SQL服务器可能位于sql.domain,您的网络位于domainwww.domain之间,而您的电子邮件位于smtp.domain),因此它不应该用于分隔单个网站的各个部分。此外,许多搜索引擎的索引http:/subdomain.example.com与http://www.example.com分开,因此您的SEO值会下降。

+0

我有mvc默认路由,默认情况下控制器会进入其索引页面。这不是问题。我想隐藏区域并使用子域(〜/ Area/Controller/Action?查询)。这样我可以有多个子域指向同一个站点,但用户不知道,因为该区域将被隐藏。 foo.site.com真的指向foo.site.com/foo,而bar.site.com是bar.site.com/bar – 2010-07-13 23:30:13

+0

为什么你想跨网域分隔你的网站?它可能会导致其他领域(如SEO)的悲伤。 – 2010-07-13 23:37:06

+0

嗯,这不是我的网站。我只是想做老板问的问题:)....我完全同意SEO问题。我需要这些子域名,以便客户更轻松地访问网站的各个部分。这些部分是用户可能或不可以访问的不同服务。它们之间唯一的相似之处是用户帐户和登录。如果我将sub.site.com重定向到site.com/sub,搜索引擎优化如何?我真的很感激反馈。 – 2010-07-15 14:13:04