Это мой первый пост на SO. :) Моя цель - в приложении (которое является существующим приложением VB.NET shudder ) всякий раз, когда встречается запрос для такого ресурса, как:

/itemimages/image.png

Что он переписывается на

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

На производственном сайте есть 10 ГБ изображений, поэтому для локальной разработки мы просто хотим переписать запрос, чтобы нам не нужно было загружать и перемешивать около 10 ГБ изображений продуктов.

Я пробовал следующее в 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
Scott 15 Июл 2012 в 19:35

1 ответ

Лучший ответ

Context.RewritePath обрабатывает запрос по другому пути с помощью ASP.Net.
Нет смысла делать это с внешним сервером.

Вы хотите Response.Redirect.

2
SLaks 15 Июл 2012 в 19:38