У меня есть файл .htaccess, который отвечает за несколько доменов.Для всех этих доменов у меня есть решение перенаправить все http на https и удалить / добавить поддомен www, где это необходимо.Хотя это некрасиво.Есть ли лучший способ?
Я ограничен этим файлом .htaccess.Мне также важно, чтобы только 1 перенаправление на запрос.
Вот мое уродливое решение:
RewriteEngine On
# domain A (redirects to https without a subdomain)
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^.+\.domainA\.com$ [NC]
RewriteRule .* https://domainA.com%{REQUEST_URI} [R=302,L]
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^.+\.domainA\.com$ [NC]
RewriteRule .* https://domainA.com%{REQUEST_URI} [R=302,L]
# domain B (redirects to https & to www subdomain)
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^(?!(www\.)).*(domainB\.com)$ [NC]
RewriteRule .* https://www.domainB.co.uk%{REQUEST_URI} [R=302,L]
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^(?!(www\.)).*(domainB\.com)$ [NC]
RewriteRule .* https://www.domainB.co.uk%{REQUEST_URI} [R=302,L]
# domain C (redirects to https & to www subdomain)
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^(?!(www\.)).*(domainC\.com)$ [NC]
RewriteRule .* https://www.domainC.co.uk%{REQUEST_URI} [R=302,L]
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^(?!(www\.)).*(domainC\.com)$ [NC]
RewriteRule .* https://www.domainC.co.uk%{REQUEST_URI} [R=302,L]
# ..N domains
каждый раздел 1-й обрабатывает перенаправление субдомена для http трафика,Затем обрабатывает переадресацию поддоменов для трафика https .
Большое дублирование, которое вы заметите, - это условие проверки, включен ли http.Для одного домена я бы уменьшил его и имел бы оператор [ИЛИ]:
# domain B
RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{HTTP_HOST} ^(?!(www\.)).*(domainB\.com)$ [NC]
RewriteRule .* https://www.domainB.co.uk%{REQUEST_URI} [R=302,L]
Но я не могу сделать это с несколькими доменами, потому что первый RewriteCond будет совпадать на любом домене, где отключен https.
Итак, можно ли украсить что-нибудь из этого?
Большое спасибо!