可选MVC URL上的Asp.net MVC域路由或设置域

时间:2012-12-25 14:11:20

标签: asp.net-mvc dns asp.net-mvc-routing

如何在一个Asp.net MVC项目中为可选URL设置付费域,如下所示:

  • http://domain.com/Controller/Action?id -----> www.example.com
  • domain.com/Controller/Action?id2 -----> www.sample.net

换句话说,我们希望将每个URL映射到1个MVC项目中的单独域名。

有必要说,之前在Stackoverflow中已经提出了一个问题,但有一些变化。我之前在official asp.net site也问过。为了澄清问题,我转载了问题以获得很好的答案。这个问题之前也问过Mr. k.Scott Allen,所以他建议我在MVC中阅读IRouteConstrain主题。

无论如何,在Global.asax文件中映射路由所需的配置对我来说并不是很明亮。

到目前为止我收集的信息是:

  1. 首先,请考虑我们已配置所需的DNS选项来处理连接到相关权威DNS服务器的请求。

  2. 现在,我们需要通过配置MapRoutes在Global.asax文件中进行一些更改。

  3. 请通过以上样本回答这个问题。谢谢。

1 个答案:

答案 0 :(得分:0)

一种简单易懂的外部方式是使用dns重定向,如下面的那样:

  • www.example.com ----重定向到----> www.domain.com/Controller/Action/id

可以在权威(本地)DNS服务器上执行。请注意,我们必须使用url中的可能字符存储在dns RR中。这可以通过更改操作中的标识符或使用IIS中的Url Rewrite方法来解决。 Url Rewrite允许我们进行一些映射,因为优化了Urls for SEO和缩短主题,如子域。但是,由于实际上不使用子域,我们不能在dns中使用Url别名:

  • www.domain.com/Controller/Action?id=optional ---- map to - > www.domain.com/optional
  • www.domain.com/optional不等于optional.domain.com 所以我们不能使用这种别名:
  • www.domain.com/optional ---域别名---> www.example.com

最后,global.asax或C#或VB文件(如Route,IRoute等)中可用的映射技术可用于内部映射,并设置MVC路由引擎以表示不同的Url信息,但不能用于别名域。