Как перенаправить 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, попробуйте это:

  1. Создайте.htaccess в домашнем каталоге вашего сайта
  2. Добавьте эти строки:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
  1. Перезагрузите свой сайт и дайте ему минуту, чтобы зарегистрировать изменения.

В основном это приводит к тому, что любой URL-адрес, используемый для доступа к сайту, превращается в URL-адрес HTTPS://.

https://www.siteground.com/kb/how-to-force-ssl-with-htaccess/

Другие вопросы по тегам