2

想象一下这个场景,我有:

wellspell.com

以及

wellspeel.com
weelspell.com
weelspeel.com

我希望我的 MVC 应用程序只能使用正确的域名。

我当前的问题在于当前 DNS 控制面板下缺乏对CNAME*.wellspeel.com的支持,因为我可以轻松添加www.wellspeel.com但永远不会wellspeel.com(仅作为 ANAME)。

什么是最简单的配置,所以我可以重定向http://wellspeel.comhttp://wellspell.com

我现在拥有的是在我的第一个控制器中,一个简单的检查使用requestContext.HttpContext.Request.Url.Host然后过滤并重定向用户

requestContext.HttpContext.Response.RedirectPermanent("http://wellspell.com");

但这已经在控制器初始化中......我可以在到达控制器之前进行重定向吗?

我正在寻找有关的文档,UrlRoutingModule但经过几次尝试后我迷路了......

谁能指出我正确的方向,或者有没有人有这个问题,你们是如何解决的?


PS我还想我可以在一个新网站中创建一个简单的处理程序,并在该网站绑定中添加所有“坏”域并从那里重定向,使用一个简单的XML配置可能更容易更新......

4

1 回答 1

1

如果您运行的是 IIS 7 或更高版本,您只需确保HTTP 重定向,而无需维护任何代码。

编辑:出于某种原因,我假设您正在为每个可能的域建立 IIS 站点。如果您只是设置一个 IIS 站点并为每个可能的域包含多个绑定,那么您可能需要考虑使用IIS URL 重写规则(这仍然可以让您跳过必须配置任何代码,因为规则将在之前执行MVC 管道)。

具体来说,我认为您会对HTTP_HOST条件输入感兴趣。

这是一个(未经测试的)示例:

<system.webServer>
    <rewrite>
        <rules>
            <rule name="SpellingErrorOne" stopProcessing="true">
                <match url="(.*)" />
                <conditions>
                    <add input="{HTTP_HOST}" pattern="^weelspeel.com" />
                </conditions>
                <action type="Redirect" url="http://wellspell.com" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>

您只需要为要处理的每个域添加一个规则。<condition>充当必须验证才能执行操作(例如重定向)的标准。

于 2013-05-02T20:48:10.043 回答