Как обойти base href без https?

Ссылка скопирована
16 марта 2026 1 ответ

Привет. Есть школьный сайт на Joomla, который крутится на HTTP, и по HTTPS не открывается.

В браузере открывается сайт только по http.

Но грузится только HTML, без картинок и стилей.

Вижу в ХТМЛ коде, что кто-то фиксил на скорую руку сайт, путем внедрения тега

<base href="http://site.ru/">

чтобы относительные ссылки на картинки и CSS грузились по HTTP.

Но после обновления браузера, сайт грузится без картинок. Если нажать F12 и перейти в режим разработчика, видно что подгрузка всех изображений всё равно идет через https, а так как NGINX и LetsEncrypt на тот домен добавить технически невозможно, то у меня сейчас два развития событий - обойти автозамену http на https браузерами в относительных ссылках, либо переносить сайт на нормальный домен с LetsEncrypt и т.д.

Может кто сталкивался - как заставить современные браузеры посетителей сайта не заменять HTTPS на HTTP.

ЗЫ:

Это не авторедирект с HTTP на HTTPS!!! Это именно браузеры грузят контент с сайта http, меняя http в URL на https

Дополнительно:

1. Так ведут себя не все браузеры, а только хром, ЕМНП.
2, Для получения LE NGINX не нужен.
3. Сайт можно проксировать через клаудфлаер и там же получить сертификат (если LE не в состоянии использовать).
4. При использовании SSL ссылки в джумле надо поменять.

Вот например сайт icio.us на http(хз что за сайт, нагуглен из списка "popular websites loaded insecurely") , прекрасно грузит иконку сверху слева.
Так что это не стандартное поведение браузера.

Дайте ссылку на ваш сайт или хотя-бы запросите картинку с вашего сервера руками и покажите какие заголовки он отдаёт.

Пока единственное разумное предположение, что там вместо image/<что-то> идёт какая-то ересь и браузер решает попытать счастья на https. Тогда надо поправить MIME types на сервере.

Ещё вариант, что на сайте когда-то был https с включенным HSTS. Тогда надо руками удалить из браузера сохранённую метку.

Но это всё гадание на кофейной гуще.

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Никита Орлов Ответ

Чтобы обойти использование base href без https, можно использовать относительные пути в ссылках и ресурсах на странице.

Вместо того, чтобы указывать абсолютные пути к файлам и ресурсам на вашем сайте, используйте относительные пути. Например, если у вас есть ссылка на файл стилей style.css, вместо того, чтобы указывать , используйте . Таким образом, браузер будет искать файл стилей относительно текущего пути, а не относительно base href.

Также можно использовать протокол относительности в ссылках. Вместо того, чтобы указывать прямой путь к ресурсу, например , можно использовать протокол относительности, указав // перед URL: . Таким образом, браузер будет использовать тот же протокол, который был использован для загрузки текущей страницы.

Еще одним способом обхода base href без https является использование JavaScript для динамической замены ссылок на странице. Вы можете написать скрипт, который будет проверять все ссылки на странице и заменять абсолютные пути на относительные или протокол относительности. Например, вы можете использовать jQuery для этой цели:

$(document).ready(function() {
  $('a').each(function() {
    var href = $(this).attr('href');
    if (href.indexOf('https://') !== -1) {
      $(this).attr('href', href.replace('https://', ''));
    }
  });
});

$(document).ready(function() { $('a').each(function() { var href = $(this).attr('href'); if (href.indexOf('https://') !== -1) { $(this).attr('href', href.replace('https://', '')); } }); });

Этот скрипт будет проверять все ссылки на странице и заменять абсолютные пути, начинающиеся с https://, на относительные пути.

Надеюсь, эти советы помогут вам обойти использование base href без https на вашем сайте. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно