Я использую балансировщик нагрузки приложений AWS для настройки своей среды.
Балансировщик нагрузки приложений получает запросы из Интернета на порт 443 и перенаправляет их на порт 80.
Сервер Apache работает с докером на сервере EC2 на порту 80 за балансировщиком нагрузки.
Мой веб-сайт разработан с использованием CakePHP. < br /> Когда я позвонил на https://www.example.com, моя веб-страница была загружена.
Однако в PHP, когда я использовал следующий код для получения текущего URL-адреса, я получил URL-адрес http://www.example.com. Я не получаю https. Я получаю только http.
echo Router::url('/', true);
Поэтому, когда приложение выполняет вызов ajax, запросы поступают через http (не https), и браузеры отклоняют запрос как «заблокировано: смешанное содержимое». Я думаю, что запросы должны выходить как https. Укажите, что мне не хватает.
Я пробовал следующее, и ничего не работает
В хост-файле. (или) кладу в .htaccess
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI}
HTTPS
какtrue
в своей среде (например, конфигурационный файл Apache или файл .env), я думаю, это может позаботиться об этом за вас. - person Greg Schmidt   schedule 23.09.2020