PS: это вторая часть вопроса, изначально размещенного Вот.
Я бы хотел отключить Заголовок HSTS полностью для конкретных виртуальных хостов. У меня есть (на рекомендация) перенаправление в контейнере 443 для каждого из этих хостов. Работает нормально, но Apache не рекомендует используя RewriteRule без крайней необходимости. Можно ли выполнить перенаправление ниже, используя только Перенаправитьа не переписать?
<VirtualHost x.x.x.x:443>
<IfModule mod_headers.c>
Header unset Strict-Transport-Security
Header always set Strict-Transport-Security "max-age=0;includeSubDomains"
</IfModule>
SuexecUserGroup "#520" "#520"
ServerName dev.domain.com
ServerAlias www.dev.domain.com
ServerAlias subdomainjr2b.dev.domain.com
ServerAlias www.subdomainjr2b.dev.domain.com
ServerAlias subdomainblah.dev.domain.com
ServerAlias www.subdomainblah.dev.domain.com
RewriteEngine On
RewriteRule ^(.*)$ http://%{HTTP_HOST}$1 [redirect=302]
PS1: Domain.com имеет сертификат с подстановочными знаками, а подстановочные знаки работают только для sub.domain.com, но не для sub.sub.domain.com, поэтому необходимо отключить hsts для этих vhosts.
PS2: Не спрашивайте меня, зачем мне использовать Header unset
когда я уже использую Header always set
. Он отправлял клиенту два заголовка раньше Header unset
был реализован, и насколько я понял это не должно.
Причина использования Redirect
вместо того mod_rewrite
в том, что последнее требует гораздо больше ресурсов, чем первое, и причина этого в том, что последний может делать гораздо больше. Одна из вещей, которые mod_rewrite
могу сделать и RedirectMatch
не может - отслеживать имя хоста, используемое в запросе.
Итак, проблема здесь в том, что вы хотите продолжать использовать одно и то же доменное имя после перенаправления, и вы хотите, чтобы все домены были псевдонимами на одном виртуальном хосте. Пока вы хотите и то, и другое, тогда mod_rewrite
это единственный инструмент.
Если бы вы могли либо перенаправить все запросы на одно каноническое имя хоста, либо разделить их на одно VirtualHost
на доменное имя можно было бы использовать RedirectMatch
вместо этого вот так:
RedirectMatch ^(.*)$ https://dev.domain.com$1