如何在一个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文件中映射路由所需的配置对我来说并不是很明亮。
到目前为止我收集的信息是:
首先,请考虑我们已配置所需的DNS选项来处理连接到相关权威DNS服务器的请求。
现在,我们需要通过配置MapRoutes在Global.asax
文件中进行一些更改。
请通过以上样本回答这个问题。谢谢。
答案 0 :(得分:0)
一种简单易懂的外部方式是使用dns重定向,如下面的那样:
可以在权威(本地)DNS服务器上执行。请注意,我们必须使用url中的可能字符存储在dns RR中。这可以通过更改操作中的标识符或使用IIS中的Url Rewrite方法来解决。 Url Rewrite允许我们进行一些映射,因为优化了Urls for SEO和缩短主题,如子域。但是,由于实际上不使用子域,我们不能在dns中使用Url别名:
最后,global.asax或C#或VB文件(如Route,IRoute等)中可用的映射技术可用于内部映射,并设置MVC路由引擎以表示不同的Url信息,但不能用于别名域。