Я управляю небольшим веб-сайтом в среде LAMP общего хостинга: в основном это означает, что единственное, что я могу редактировать, это файл htaccess.
Я хотел добавить поддержку HSTS (и я сделал это), но, когда я проверил здесь свой веб-сайт на соответствие требованиям предварительной загрузки HSTS, я получил следующую ошибку:
Ошибка: HTTP перенаправляет сначала на www
http://example
(HTTP) следует немедленно перенаправить наhttps://example
(HTTPS) перед добавлением субдомена www. Прямо сейчас, первое перенаправление - этоhttps://www.example.
дополнительное перенаправление, чтобы гарантировать, что любой браузер, который поддерживает HSTS, будет записывать запись HSTS для домена верхнего уровня, а не только для субдомена.
Итак, я полагаю, что я должен перенаправить пользователей таким образом:
http://example
(это то, что пользователь вводит в адресной строке своего браузера)https://example
(мы перенаправляем его на HTTPS-версию сайта)https://www.example
(мы перенаправляем его снова на поддомен www)
Мой текущий редирект сделан следующим образом:
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
Я попытался добавить перенаправление до последней строки, таким образом:
RewriteRule ^(.*)$ https://example.com/$1 [R,L]
но я получил сообщение "страница не перенаправляет должным образом" из браузера.
Итак, как правильно перенаправить пользователя с http-версии сайта на https и, наконец, на https с www? И: есть ли риски?
источник
Strict-Transport-Security
заголовок ответа. Например, чтобы установить это в редиректе, вам нужно использоватьalways
аргумент вHeader
директиве. Я ответил на связанный вопрос о стеке Pro Webmasters (пропустите первую часть моего ответа оon
/off
), в котором более подробно рассказывается о реализации « предварительной загрузки HSTS ».htaccess
..htaccess
вопросов, связанных только с этим (ServerFault предполагает, что у вас есть полный контроль над сервером, и в этом случае вы бы этого не делали.htaccess
). Возможно, проще реализовать это в конфигурации сервера с использованием отдельных<VirtualHost>
контейнеров (поскольку вам не нужно связываться с env vars и дополнительными условиями - это «чище» и меньше подвержено ошибкам). Я не думаю, что я бы порекомендовал "предварительную загрузку списка", если у вас есть доступ только к.htaccess
. (My 2c)