4

这是我关于 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' 不是有效的虚拟路径。

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

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

4

1 回答 1

2

Context.RewritePath使用 ASP.Net 在不同路径下处理请求。
使用外部服务器这样做是没有意义的。

你想要Response.Redirect

于 2012-07-15T15:38:41.127 回答