【问题标题】:Asp.net MVC Domain Routing or Setting domain on optional MVC URLAsp.net MVC 域路由或在可选 MVC URL 上设置域
【发布时间】:2012-12-11 11:12:39
【问题描述】:

如何在一个 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 文件的 Mapping routes 中所需的配置对我来说并不好。

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

    一种简单的外部方法是使用如下所示的 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 信息,但不能为 a域。

    【讨论】:

      猜你喜欢
      • 2016-12-01
      • 2011-07-03
      • 2013-02-20
      • 2010-12-09
      • 2018-05-31
      • 1970-01-01
      • 2021-02-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多