重定向错误url的最佳方式
本文关键字:最佳 方式 url 错误 重定向 | 更新日期: 2023-09-27 18:12:06
想象一下这个场景,我有:
wellspell.com
和
wellspeel.com
weelspell.com
weelspeel.com
和我希望我的MVC应用程序只工作与正确的域名。
我目前的问题在于当前DNS控制面板下缺乏对CNAME的支持,因为我可以轻松添加*.wellspeel.com
和www.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配置,更容易更新…
如果你运行的是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>
作为执行操作(如重定向)必须验证的标准。