如何使用global.asax MVC4将子域重定向到www域

时间:2012-09-11 14:12:59

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

我在IIS7下有一个网站,所有子域名都是* .mydomain.com 但有些网站会随机化子域名,如:

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

任何子域都可以完美地加载我的MVC页面,但谷歌索引会将网址加倍,因为有两个网址不同。

我会使用global.asax将所有子域永久重定向到“www.mydomain.com”,并保留url和查询字符串。 e.g。

  • 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#自定义不应重定向的子域。

我不想为所有控制器创建页面基础。

1 个答案:

答案 0 :(得分:4)

假设您正在使用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