Я собираюсь предварительно загрузить сайт HSTS и вижу следующий заголовок. Без проблем. Оно работает.
Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" env=HTTPS
Условием предварительной загрузки HSTS является то, что я также перенаправляю весь HTTP-трафик на HTTPS. Для этого я использую следующую инструкцию:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Это тоже работает. Если он проверяет мой корневой домен (example.com) на hstspreload.org, я вижу зеленый цвет и могу добавить свой домен в список предварительной загрузки. Это здорово, но с одной оговоркой.
Я хочу загружать свой сайт по адресу https://www.example.com
, а не https://example.com
. Это должно быть достаточно простым:
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Если он вернется на hstspreload.org, я получаю следующую ошибку:
Ошибка ответа: в ответе отсутствует заголовок HSTS.
Когда я ввожу любой субдомен в панель hstspreload.org, я вижу зеленый цвет. Я получаю сообщение об ошибке только в корневом домене, потому что, похоже, корневой домен больше не отправляет заголовок HSTS. Однако при предварительной загрузке корневой домен должен отправить заголовок.
Я сделал уроки и поискал. Я прочитал этот пост пару лет назад, но мой вопрос не о SEO. И два перенаправления - одно с HTTP на HTTPS и одно с на - устраивают Google.
Я достаточно уверен, что могу иметь предварительную загрузку HSTS и перенаправление WWW. Troyhunt.com перенаправляет на HTTPS, а затем на WWW. Корневой домен также проверяется на hstspreload.org. Однако я считаю, что он использует IIS, поэтому вопрос о том, что делать на Apache, мне мало поможет.
Буду благодарен за любые идеи. Я пытаюсь, но я немного новичок. Спасибо!