ASP.Net - 将任何请求重定向到同一路径的另一个域

时间:2010-02-17 20:27:42

标签: asp.net iis-6

我将会遇到www.DomainA.com和www.DomainB.com,每个人都有独立的IP。所有对www.DomainB.com/{Path}的请求,我都想重定向到www.DomainA.com/{Path}。

我最初的反应是,在基本目录中,只需创建一个HTTPModule和Web.config即可添加到模块中,然后模块会将请求重定向到DomainA。唯一的问题是IIS没有执行模块,而是根据请求的路径确定是否有匹配的文件或应用程序运行(即因此您将收到有关所请求文件不存在的错误,或者没有找到所请求的应用程序的安全错误。)

在IIS中需要更改什么才能始终运行我的模块?或者有没有更简单的方法来使用.Net 2.0& IIS6?

2 个答案:

答案 0 :(得分:4)

只需做一个简单的应用程序,然后在你的Global.asax Application_BeginRequest中将代码重定向 - 例如:

Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)
    Dim strPath As String = HttpContext.Current.Request.Url.PathAndQuery
    HttpContext.Current.Response.Clear()
    HttpContext.Current.Response.Status = "301 Moved Permanently"
    HttpContext.Current.Response.StatusCode = 301
    HttpContext.Current.Response.AddHeader("Location", "www.DomainA.com" & strPath)
End Sub

记住301状态代码,让搜索引擎感到高兴,让他们知道它是永久重定向。

答案 1 :(得分:2)

按照these instructions强制IIS通过ASP.Net发送所有请求。