Что произойдет, если я принудительно установлю https для своего хостинга изображений через.htaccess, но вставлю изображение со ссылкой http?
Я создал небольшой хостинг изображений для своих собственных проектов и недавно переключил сайт на https, который работает отлично.
Теперь я создал файл.htaccess с правилом перезаписи, как описано здесь, поэтому, если я перейду к http://myservice/image.jpg
он автоматически перенаправляет меня на https://myservice/image.jpg
Теперь мой вопрос, как реагируют браузеры, если я вставляю ссылку http изображения. Будет ли действовать правило перезаписи, и изображение будет передано через http или будет использоваться незашифрованный http?
Я проверил это с Chrome, и изображение было отображено, но я не уверен, было ли это передано через https или http. Есть ли какие-либо примеры, которые могут пролить свет на мой вопрос?
2 ответа
Браузеры отправят отдельный запрос на встроенное изображение, так что да, затем он будет перенаправлен на https. Тем не менее, некоторые браузеры могут также предупреждать своих пользователей из-за ссылки http, что "некоторые ресурсы на этой странице не защищены".
Чтобы избежать обеих этих проблем, вам следует переписать ссылки на вашей странице или в приложении, чтобы пропустить ведущую схему и имя хоста: например,
<a href="/img.png">
вместо
<a href="http://example.com/img.png">
Затем браузер автоматически извлечет изображение из той же схемы (например, https) и имени хоста, что и страница, поэтому вы избегаете перенаправления на https и / или предупреждения для пользователей.
Кроме того, если вам действительно нужно указать домен, вы все равно можете опустить спецификацию протокола:
<a href="//example.com/img.png">
Протокол, используемый для загрузки страницы, содержащей ссылку, будет добавлен. Так что, если вышеуказанная ссылка находится на странице https://example.com/index.php
тогда ссылка будет указывать на https://example.com/img.png
Я проанализировал файлы журнала сайта http и https, и, похоже, браузер запрашивает файл http, перенаправляется и передается файл https. В журналах я вижу запрос файла в обоих файлах, но я предполагаю, что передается только файл https