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

时间:2012-07-15 15:35:31

标签: .net vb.net url-rewriting

这是我关于SO的第一篇文章。 :)我的目标是,在应用程序(这是一个现有的VB.NET应用程序 shudder )中,只要遇到资源的请求,例如:

/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'不是有效的虚拟路径。

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

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

1 个答案:

答案 0 :(得分:2)

Context.RewritePath使用ASP.Net在不同的路径下处理请求 使用外部服务器执行此操作没有意义。

您想要Response.Redirect