我正在尝试将对domain.com的所有子域请求重定向到www.domain.com,并且用户必须仅通过输入主域并单击链接来访问网站的所有部分,例如,如果用户直接在中输入以下地址浏览器:
subdomain.domain.com
或者
www.domain.com/post/showPost.aspx?pid=11
我想显示错误页面,然后重定向到 www.domain.com
我使用 asp.net 和 IIS 7.5 以及 Visual Studio 2010
谢谢。
最佳答案
使用 URL 重写模块可能是一个不错的选择。尝试使用类似于以下的配置:
<system.webServer>
<rewrite>
<rules>
<clear />
<rule name="Redirect to WWW" enabled="true" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" pattern=".*" />
</conditions>
<action type="Redirect" url="http://www.domain.com/{R:0}" />
</rule>
</rules>
</rewrite>
</system.webServer>
这将重定向而不显示错误页面。如果您想显示错误页面,那么您需要重定向到一个采用返回 URL 并执行客户端重定向到正确位置的页面。
正如 @inspile 所说,您在网站的子页面上执行此操作会遇到困难。您可以使用引荐来源网址来确保它来自主站点上的链接。同样,URL 重写模块是此处的最佳选择。
干杯
关于asp.net - 如何将任何子域请求重定向到asp.net中的主域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11420094/