【问题标题】:How to redirect subdomain to www domain using global.asax MVC4如何使用 global.asax MVC4 将子域重定向到 www 域
【发布时间】:2012-09-04 12:03:30
【问题描述】:

我在 IIS7 下有一个网站,将所有子域捕获为 *.mydomain.com 但有些网站会随机设置子域,例如:

  • www2.mydomain.com
  • w.w.w.mydomain.com
  • etc.mydomain.com

任何子域都可以完美加载我的 MVC 页面,但是 google 索引会使 url 加倍,因为有两个不同的 url。

我会使用 global.asax 将任何子域永久“301”重定向到 www.mydomain.com,并保留 url 和查询字符串。例如

  • www2.mydomain.com/Controller/Action/ID?query=asb TO www.mydomain.com/Controller/Action/ID?query=asb

  • wwwmydomain.com/Controller/Action/ID?query=asb TO www.mydomain.com/Controller/Action/ID?query=asb

我不想使用 IIS7 重定向,因为我将使用 C# 自定义不应该重定向的子域。

我不喜欢为所有控制器创建页面库。

【问题讨论】:

  • 在 Globas.asax 中而不是在 Web 容器中这样做的原因是什么?
  • 他对何时重写 URL 有条件,所以他正在使用 C# 代码来做出决定。

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4 global-asax


【解决方案1】:

假设您使用的是 IIS,您应该能够通过 ARR 实现这一点。

例子:

<rule name="SubDomain" stopProcessing="false">
                    <match url="(.*)" />
                    <conditions>
                        <add input="{HTTP_HOST}" pattern="^(?!www)(\w+)\.mine\.co\.uk$" />
                    </conditions>
                    <action type="Rewrite" url="{C:1}/{R:1}" />
</rule>  

参考:http://forums.iis.net/p/1155754/1895646.aspx

【讨论】:

  • 这就是我要做的。您可以自定义匹配模式以跳过某些子域的重写。
  • 您好,感谢您的帮助。我安装了 rewrite_2.0_rtw_x64.msi(IIS7 重写模块)并创建了一个名为“规范域名”的特定规则。该模块问我主域名(有或没有 www)并完成!所有子域都将被重定向。成功了,再次感谢。
猜你喜欢
  • 2012-04-01
  • 2014-03-25
  • 1970-01-01
  • 2019-02-21
  • 2015-05-19
  • 1970-01-01
  • 2018-03-27
  • 2015-03-12
  • 2015-10-16
相关资源
最近更新 更多