Как предотвратить выполнение правила перезаписи только для одного поддомена?
В корневом уровне .htaccess я добавил условие для перезаписи HTTP-запросов как HTTPS:
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Это относится к основному домену и всем поддоменам. К сожалению, в одном из поддоменов еще предстоит поработать, чтобы он работал с HTTPS, поэтому я хотел бы вставить что-нибудь в , что в файл .htaccess, чтобы отменить унаследованные правила перезаписи.
Файл все равно должен наследовать множество других конфигураций от родительского домена, поэтому он должен отменить только одно правило перезаписи.
Как я могу отключить это правило перезаписи для определенного поддомена?
1 answers
Если поддомен указывает на подкаталог вне корневого каталога документов основного домена, то вы можете просто включить директиву RewriteEngine On
в файл .htaccess
этого подкаталога. Однако это переопределит все директивы mod_rewrite в родительском файле .htaccess
, что может быть нежелательно (хотя "другая конфигурация из родительского домена" будет унаследована).
Если у вас есть другие директивы mod_rewrite в родительском .htaccess
, которые вы хотите запустить, вам нужно будет добавьте условие к этому правилу HTTP/HTTPS в родительский файл .htaccess
, которое специально исключает поддомен.
Например:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^subdomain\.
RewriteCond %{HTTPS} !on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=302,L]
В котором говорится... если хост не не запускает subdomain.
и не https, то...
Обычно вам требуется флаг L
для перенаправления, чтобы обработка не продолжалась через файл (если у вас больше директив mod_rewrite). Кроме того, этот магазин обычно должен быть 301 (постоянным) перенаправлением. Если это так, то затем измените 302
на 301
, когда вы убедитесь, что он работает нормально. Хотя, возможно, лучше оставить как 302, пока это разрабатывается.
Кроме того, нет необходимости фиксировать URL-путь (т.Е. (.*)
), если это не используется в RewriteRule
замена (или директивы RewriteCond
).