0

如何在一个 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中已经提出了一个与此相关的问题,并进行了一些更改。并且我之前在官方asp.net网站上也问过。为了澄清问题,我复制了问题以获得很好的答案。这个问题之前也问过k.Scott Allen 先生,所以他建议我阅读MVC 中的IRouteConstrain主题。

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

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

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

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

请通过实施上述示例来回答这个问题。非常感谢。

4

1 回答 1

0

一种简单的外部方法是使用如下所示的 dns 重定向:

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

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

  • www.domain.com/Controller/Action?id=optional ----映射到 --> 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 信息,但不能为域使用别名。

于 2013-04-01T16:31:55.627 回答