У меня есть внешний коммерческий сайт, на который нужно перейти пользователям, http://www.foo.com, что, к сожалению, вызывает проблемы с нашим прокси-сервером, пользователи получают неработающие ссылки, таблицы стилей не загружаются и т. д.
Экспериментируя, мы обнаружили, что https://www.foo.com работает отлично, но некоторые из их ссылок являются абсолютными и указывают на http://www.foo.com, что затем вызывает проблему с прокси, когда они нажимают на них. Очевидно, было бы неплохо, если бы сайт позаботился об этом, но вряд ли в ближайшее время.
Есть ли способ заставить клиентов, использующих IE6, перенаправить на https://www.foo.com/whatever когда пользователь нажимает ссылку на http://www.foo.com/whatever? Я видел, где это можно сделать с помощью Firefox + Noscript.
На самом деле изменения должны быть сделаны на прокси-сервере, добавив исключение для этого сайта. Поскольку у вас нет доступа к удаленному сайту и вы используете https, я думаю, что перенаправление должно быть на уровне браузера вашего пользователя.
Я бы предположил, что вы не можете проксировать https, потому что он зашифрован на клиенте до того, как попадет на прокси-сервер, и зашифрован удаленным хостом, прежде чем он попадет на ваш прокси-сервер. Из-за этого прокси-сервер не сможет просматривать данные http и кешировать их. Итак, я думаю, что использование https в основном заставляет вас обходить прокси-сервер. Может ли это подтвердить кто-нибудь с большим опытом работы с прокси?
О единственном способе, который я могу придумать для достижения этого с IE 6, - это создать запись файла хоста для каждого клиента, указывающего на страницу перенаправления ... хотя это немного похоже на взлом. Похоже, что лучшим решением было бы исправить прокси, как все уже упоминали.
Не зная, какой прокси-сервер вы используете, можете ли вы просто перенаправить его? Если вы используете кальмар, извиваться (среди прочего) похоже, что это поможет.
Если вы используете apache в качестве веб-сервера, вы можете использовать директиву mod_rewrite в .htaccess для перезаписи всех входящих HTTP-запросов на https.
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} .*MSIE.* [AND]
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Это перепишет все запросы, поступающие от браузеров MSIE, для использования https.
Поскольку вы явно не указываете используемый здесь веб-сервер, я могу только догадываться. К сожалению, я недостаточно хорошо знаю IIS, чтобы делать то же самое.
Надеюсь это поможет!