【问题标题】:How to Handle Domain name in MVC Routing如何在 MVC 路由中处理域名
【发布时间】:2023-03-10 22:50:01
【问题描述】:

如果我的用户通过 IP 地址进入我的网站,我正在尝试使用路由将他重定向到另一个 URL。

或者如果可能请告诉我是否可以通过路由处理域名。因为我可以为 Controller 和 Action 使用路由,但我也可以在那里处理 Domain 吗?

我目前正在使用它,但我无法处理域:

routes.MapRoute(
                "Controller",                                        
                "Controller/{action}/{id}",                          
                new { controller = "Controller", action = "Index", id =     UrlParameter.Optional }); 

【问题讨论】:

    标签: asp.net asp.net-mvc asp.net-mvc-3


    【解决方案1】:

    如果您使用的是 IIS 7,最好在 Web 服务器级别实现此功能。

    这样,正确的状态代码将在 HTTP 标头中返回给浏览器,您的 MVC 应用程序可以处理自己的路由,而不必担心域和主机名,在大多数情况下,这是 Web 服务器的工作。

    要在 IIS 上实现此目的,请在 IIS 控制台中打开您的网站并选择 URL Rewrite 并按照以下步骤操作:

    1. 创建新规则并将匹配 URL 设置为 通配符 并输入模式作为 IP 地址 xxx.xxx.xxx.xxx*
    2. 添加 {HTTP_HOST} 等于网站 IP 地址的条件。
    3. 将“动作类型”设置为重定向,并输入您希望重定向到的模式。在这种情况下,“http://mysite.com{R:1}”会将 IP 地址之后的所有内容映射到其等效域,因此 xxx.xxx.xxx.xxx/mycontent 将重定向到 mysite.com/mycontent

    这种方法将确保您的子目录得到映射,并且您的网站保持搜索引擎友好,并生成正确的响应代码。

    下面的屏幕截图显示了您的规则在 IIS 中的外观:

    或者,如果您需要在应用范围内执行此操作,ASP.NET MVC Routing by Subdomain 上的这个问题可能会很有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-08
      • 2014-02-09
      • 1970-01-01
      • 2011-12-05
      • 2011-12-13
      • 2015-05-24
      相关资源
      最近更新 更多