.net – 使用Context.RewritePath重写到不同的域

这是我关于SO的第一篇文章. :)我的目标是,在应用程序(这是一个现有的VB.NET应用程序颤抖),每当遇到资源的请求时,例如:

/itemimages/image.png

它被重写为

http://example.com/itemimages/image.png

生产网站上有10GB的图像,因此对于本地开发,我们只想重写请求,这样我们就不必下载并随机播放10GB的产品图像.

我在Application_BeginRequest()中尝试了以下内容,请记住我正在简化这个以说明我遇到的问题:

If (url1.IndexOf("itemimages") > 0) Then
    Dim app As HttpApplication = CType(sender, HttpApplication)
    app.Context.RewritePath("https://www.google.com/images/srpr/logo3w.png")
End If

我得到的错误是:

‘https:/www.google.com/images/srpr/logo3w.png’ is not a valid virtual path.

请注意https:/www.google.com中的单个正斜杠,即使我指定了两个斜杠.另外,它明确提到它不是一个有效的VIRTUAL路径,所以显然我不能在这里指定一个绝对URL.

如何将“/itemimages/image.png”的请求重写为“http://www.website.com/itemimages/image.png”?我在C#中发布这个也是因为我对这种语言感觉更舒服,并且很可能很容易在两者之间转换任何解决方案.

最佳答案 Context.RewritePath使用ASP.Net在不同的路径下处理请求.

使用外部服务器执行此操作没有意义.

你想要Response.Redirect.

点赞