Я намерен предварительно загрузить сайт 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, мало чем мне поможет.
Буду благодарен за любые идеи. Я пытаюсь, но я немного новичок. Спасибо!