Я хочу добавить заголовок HSTS в Apache ...
# HSTS / Header Strict Transport Security
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
... но у меня есть длинный список vhosts для разных, но связанных сайтов / подсайтов. Я бы предпочел не определять его в каждом из моих определений vhost, но я не знаю, как включить параметр в основной https.conf
это относится ТОЛЬКО к 443 / https
версии этих vhosts, так как они вызывают предупреждения в валидаторах, когда вы применяете HSTS к стандартному 80 / http
сайт.
Я пробовал обернуть его <IfModule mod_ssl.c>...</IfModule>
теги, но если я не ошибаюсь, это действительно просто вопрос Модуль SSL загружен? Я пробовал искать разными способами, но когда вы не знаете искомый термин, трудно разобрать все статические данные. Какие-либо предложения? Спасибо!
Вы можете сделать это с помощью <If>
Директива и Выражения доступный; запрос связанный переменные:
REQUEST_SCHEME
: Часть схемы URI запроса
<If "%{REQUEST_SCHEME} == 'https'">
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains"
</If>
HTTPS
: on
если запрос использует https, off
в противном случае
<If "%{HTTPS} == 'on'">
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains"
</If>