@popov654
Специалист в области веб-технологий

Как исправить проблему запрета загрузки смешанного содержимого в Chrome?

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

В качестве сервера стоит Apache, перед ним установлен nginx. Apache слушает порт 80, nginx - 443. Перед ними обоими подключен CloudFlare с бесплатным тарифом.

Проблема в том, что когда я пишу правило в .htaccess с использованием mod_rewrite, в правиле я указываю относительные пути, но Apache в заголовке Location возвращает абсолютный путь, начинающийся с "http://". В итоге у меня не грузятся CSS и JS ресурсы, а также шрифты.

Я пытался решить проблему, дописав ряд условий в корневой .htaccess (например, редиректить на HTTPS протокол, если запрос пришёл не через nginx, а напрямую, при этом Referer начинается с "https://"), но всё это бесполезно, потому что чёртов хром даже не отправляет запрос - обрабатывать нечего.

А как крупные проекты решают эту проблему? Её вообще возможно решить, не закрывая полностью доступ по HTTP (я не хочу закрывать)?
  • Вопрос задан
  • 116 просмотров
Пригласить эксперта
Ответы на вопрос 2
ky0
@ky0 Куратор тега Nginx
Миллиардер, филантроп, патологический лгун
У nginx для этого существует директива proxy_redirect, которая как раз это и делает, помимо прочего - заменяет часть урла в Location.
Ответ написан
Комментировать
@popov654 Автор вопроса
Специалист в области веб-технологий
Пока что решил проблему прописав абсолютные адреса в правилах перенаправления в .htaccess для проблемного подкаталога. Но имхо это ужасный костыль, так что буду рад услышать более удачные варианты
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы