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

Asp.net mvc 如何使用global.asax MVC4将子域重定向到www域,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-4,global-asax,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页面,但是google索引将url加倍,因为它们有两个url不同 我会使用global.asax将任何子域永久重定向到www.mydomain.com,保留url和查询字符串。e、 g www2.mydomain.com/Controller/Action/I

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

www2.mydomain.com w、 w.w.mydomain.com etc.mydomain.com 任何子域都可以完美地加载我的MVC页面,但是google索引将url加倍,因为它们有两个url不同

我会使用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

w、 w.w.mydomain.com/Controller/Action/ID?query=asb至www.mydomain.com/Controller/Action/ID?query=asb

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


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

假设您使用的是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>  

参考资料:

假设您使用的是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>  

参考资料:

这就是我要做的。您可以自定义匹配模式以跳过某些子域上的重写。您好,谢谢您的帮助。我安装了rewrite_2.0_rtw_x64.msi IIS7 rewrite模块,并创建了一个名为“规范域名”的特定规则。该模块问我主域名有没有www和完成!所有子域都将被重定向。成功了,再次感谢。这就是我要做的。您可以自定义匹配模式以跳过某些子域上的重写。您好,谢谢您的帮助。我安装了rewrite_2.0_rtw_x64.msi IIS7 rewrite模块,并创建了一个名为“规范域名”的特定规则。该模块问我主域名有没有www和完成!所有子域都将被重定向。它成功了,再次感谢。在Globas.asax中而不是在web容器中这样做的原因是什么?他对何时重写URL有条件,所以他使用C代码来确定。在Globas.asax中而不是在web容器中这样做的原因是什么?他对何时重写URL有条件,所以他用C代码来做这个决定。