重定向错误url的最佳方式

本文关键字:最佳 方式 url 错误 重定向 | 更新日期: 2023-09-27 18:12:06

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

wellspell.com

wellspeel.com
weelspell.com
weelspeel.com

和我希望我的MVC应用程序只工作与正确的域名。

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

我可以将http://wellspeel.com重定向到http://wellspell.com的最简单配置是什么?

我现在拥有的是在我的第一个控制器中,使用requestContext.HttpContext.Request.Url.Host进行简单检查,然后用

过滤并重定向用户
requestContext.HttpContext.Response.RedirectPermanent("http://wellspell.com");

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

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

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


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

重定向错误url的最佳方式

如果你运行的是IIS 7或更高版本,你可以确保HTTP重定向,而不必站起来任何代码。

Edit:出于某种原因,我假设您正在为每个可能的域建立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>作为执行操作(如重定向)必须验证的标准。