Как перенаправить http:// на https:// как хостинг firebase
Хостинг Firebase уже имел перенаправления https:// в firebase.json. У меня есть приложение Angular, и для подготовки к SSR я перешел с хостинга Firebase на Cloud Run. Сначала я не знал, должен ли я связываться с Angular Universal или что-то для этого, я видел подобный вопрос здесь, но на него ответил Nginx, а это не то, что мне нужно.
Я пытался делать действительно глупые вещи с файлом server.ts, и это не было ответом вообще. Я, честно говоря, не знаю точно, с чего начать. Я искал Google для ответа, в том числе документации Google Cloud Run здесь:
https://cloud.google.com/run/docs/authenticating/public
но я понятия не имею, куда идти отсюда.
3 ответа
Интерфейс Cloud Run обрабатывает как HTTP, так и HTTPS. От Cloud Run до вашего программного обеспечения, работающего внутри контейнера, через HTTP-порт 8080 (текущий порт по умолчанию, который может измениться).
Поскольку ваш код работает по протоколу HTTP, вам необходимо определить заголовки HTTP, которые Cloud Run включает в запросы. Этот заголовок x-forwarded-proto
, Этот заголовок сообщает, какие протоколы клиент использует для подключения к интерфейсу Cloud Run. Если протокол HTTP, то ваше программное обеспечение должно отправить перенаправление (HTTP 301) на правильный URI.
В следующем коде, прочитанном с заголовком запроса, проверьте x-forwarded-proto
для HTTP и перенаправления, если True.
if (req.headers['x-forwarded-proto'] != 'https')
res.redirect('https://' + req.hostname + req.url)
Если вы довольны хостингом Firebase, вы можете использовать его вместе с Cloud Run: https://firebase.google.com/docs/hosting/cloud-run
Это позволяет вам сохранить полезные функции хостинга Firebase, такие как форсирование HTTPS, перезапись URL-адресов и указание некоторых URL-адресов для статического содержимого.
Если вам разрешено создавать файл.htaccess, попробуйте это:
- Создайте.htaccess в домашнем каталоге вашего сайта
- Добавьте эти строки:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
- Перезагрузите свой сайт и дайте ему минуту, чтобы зарегистрировать изменения.
В основном это приводит к тому, что любой URL-адрес, используемый для доступа к сайту, превращается в URL-адрес HTTPS://.
https://www.siteground.com/kb/how-to-force-ssl-with-htaccess/