У меня есть стандартное приложение ASP.Net WebForms, работающее на IIS 7.0 с интегрированным управляемым конвейером. Многие изображения на нашем сайте имеют пробелы в именах файлов (например, './ baseball drawing.gif'
). Когда мы размещаем эти изображения на наших html-страницах, мы URL-кодируем пути так, чтобы наши html-теги img выглядели так: < img src = '. / Baseball% 20drawing.gif' />
Теперь проблема возникает в когда определенные поисковые системы и веб-краулеры пытаются проиндексировать наш сайт. Когда они очищают наши страницы, они будут html-кодировать наши уже закодированные в html пути, получая ссылки на изображения, подобные этой './ baseball% 2520drawing.gif'
, где % 25
- кодировка URL для ' % '. Это вызывает две проблемы:
Как видите, это проигрышная ситуация. Пользователи получают неработающие ссылки, и мы получаем шум в наших журналах ошибок.
Я безуспешно пытался придумать, как исправить эту проблему. Вот что я пробовал:
в web.config, чтобы предотвратить «ошибку 404.11 URL с двойным экранированием». Это устранило первую ошибку, но вызвало новую: «Обнаружен потенциально опасный Request.Path».
, чтобы предотвратить появление ошибки «потенциально опасный Request.Path». Это устранило вторую ошибку, но теперь у нас есть третья: «Ресурс не найден». Request.Path
. Похоже, что это правильно со значением «Ball Image.gif» вместо «Ball% 2520Image.gif». В этом случае я не уверен, почему это не работает. Я чувствую, что у меня есть суперхак, когда мне приходится все отключать, не понимая, почему ничего не работает. Итак, я предполагаю, что у меня тройной вопрос
Мы будем благодарны за любую помощь, которую может предоставить каждый.