IIS重写规则将子域url替换为同一域上的不同url

时间:2017-05-31 11:10:17

标签: asp.net iis url-rewriting

我想匹配模式,只有当以下网址包含' / reports' 时,如果是,则低于网址:
https://test.website.com/reports/abc/sample.PDF

应仅替换为子域,例如:
https://test2.website.com/reports/abc/sample.PDF

无需更改额外参数或页面名称 此网址内容可以是动态的,我们无法在规则中修改硬编码: reports / abc / sample.PDF

1 个答案:

答案 0 :(得分:0)

使用 Global.asax 上的 BeginRequest ,检查您的请求路径,然后根据您的问题采取行动。

protected void Application_BeginRequest(Object sender, EventArgs e)
{
    HttpApplication app = (HttpApplication)sender;    
    string cTheFile = HttpContext.Current.Request.Path;

    if (cTheFile.Contains("/reports/") && cTheFile.Contains("https://test."))
    {
        app.Response.Redirect(Request.RawUrl.Replace("https://test.","https://test2."), true);
        return;     
    }
}

要避免任何无限循环。