Перенаправление HTTP-трафика на HTTPS в Gatsby

Я хотел бы перенаправить HTTP-трафик на HTTPS, так как это требование Lighthouse для PWA. Мой сайт построен с Гэтсби.

Я нашел различные плагины, подобные приведенным ниже, которые, похоже, подразумевают, что ответ исходит от изменения файла .htaccess.

https://www.gatsbyjs.org/packages/gatsby-plugin-htaccess/< /а>

Для приведенного выше плагина я попробовал следующую конфигурацию, которая не прошла аудит PWA:

{
      resolve: 'gatsby-plugin-htaccess',
      options: {
        RewriteBase: '/custom/',
        https: true,
        www: true,
        SymLinksIfOwnerMatch: true,
        host: 'av-site.com',
        redirect: [
          'RewriteRule ^not-existing-url/?$ /existing-url [R=301,L,NE]',
          {
            from: 'http:av-site.com',
            to: 'https:av-site.com',
          },
        ],
      },
    },

Кто-нибудь может мне помочь, пожалуйста! Спасибо!


person Alex Verzea    schedule 15.07.2019    source источник
comment
Это не то, чем вы хотите заниматься в JavaScript, React или Gatsby. Вам следует использовать перенаправления HTTP, реализованные в серверной части вашего приложения (например, express.js), хост (например, Netlify) или сервер (например, nginx). Также рассмотрите возможность использования HSTS.   -  person coreyward    schedule 21.01.2020
comment
Спасибо за ваш ответ! В конце концов, я пошел с ответом Ника С ниже, поскольку он использует для этого собственные функции Гэтсби (через gatsby-config.js).   -  person Alex Verzea    schedule 21.01.2020
comment
Правильно, и это то, против чего я советую. Перенаправление на стороне клиента небезопасно и неэффективно. У Gatsby нет среды выполнения на стороне сервера — вы должны соответствующим образом настроить свой хост или сервер.   -  person coreyward    schedule 21.01.2020
comment
Я понимаю. Тогда я попробую перенаправление на стороне сервера. Я развертываю на Netlify, поэтому посмотрю, как это использовать. Спасибо за информацию!   -  person Alex Verzea    schedule 21.01.2020
comment
В Netlify очень просто включить HSTS. https://docs.netlify.com/domains-https/https-ssl/#hsts-preload   -  person coreyward    schedule 21.01.2020


Ответы (1)


Убедитесь, что в gatsby-config.js siteURL стоит https

module.exports = {
  siteMetadata: {
    title: `example`,
    description: ``,
    author: `me`,
    siteUrl: `https://example.com`
  },
person Nicholas Cappello    schedule 15.07.2019
comment
Вот и все! Спасибо! - person Alex Verzea; 16.07.2019
comment
Рад, что смог помочь! - person Nicholas Cappello; 16.07.2019
comment
Любые предложения, если это не поможет? На одном сайте работает, на другом нет. - person Slbox; 29.12.2020
comment
В итоге я воссоздал запись CNAME на Cloudflare, и, несмотря на то, что она идентична, это исправило ее. Очень раздражает; Я надеюсь, что это поможет кому-то. - person Slbox; 29.12.2020
comment
Рад, что вы смогли решить вашу проблему. Часто при использовании таких сервисов, как cloudfair и т. д., они потребуют от вас «воссоздания» учетных данных среды внутри их консоли. Или хотя бы припарковать их там. - person Nicholas Cappello; 01.01.2021