htaccess несколько доменов перенаправить на https://www и в корень конкретного документа
У меня есть 3 LIVE домена, которые указывают на один корень документа, где CMS обрабатывает каждый домен со своим собственным контентом.
Теперь мне нужно перенаправить все 3 домена в HTTPS с помощью WWW и иметь возможность изменить корневой каталог каждого домена в будущем.
Пример того, что должно произойти:
http://domain1.com/ => https://www.domain1.com/
http://www.domain1.com/ => https://www.domain1.com/
То же самое должно произойти и для domain2.com и domain3.com
Корнем документа для всех трех доменов является /cms-1.1/
В будущем возможно изменение домена domain1.com на новый корень документа /cms-2.1/, но для остальных доменов корень документа останется таким же /cms-1.1/
Могу ли я написать одно правило или несколько правил... для каждого домена отдельно или в сочетании??
До сих пор я подошел сюда:
для корня документа: (для каждого домена)
RewriteCond %{HTTP_HOST} ^domain1.com$ [NC,OR] RewriteCond %{HTTP_HOST} ^www.domain1.com$ RewriteCond %{REQUEST_URI} !^/cms-1.1/*$ RewriteRule ^(.*)$ /cms-1.1/$1 [L]
для не www на www: (для каждого домена)
RewriteCond %{HTTP_HOST} ^domain1\.com$ [NC] RewriteRule (.*) http://www.domain1.com/$1 [R=301,L]
для HTTPS: (для каждого домена)
RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://www.domain1.com/$1 [L,R=301]
Но будет ли это работать??? Поскольку все три домена работают, мне не нужно простоев...
1 ответ
Вы можете использовать этот общий код (не тестировался)
# https mechanism
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
#none www to www.
RewriteCond %{HTTP_HOST} ^(?!www\.)(.+) [NC]
RewriteRule ^(.*) https://www.%1%{REQUEST_URI} [R=301,NE,L]
#Document root each domain
RewriteCond %{HTTP_HOST} ^domain1.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.domain1.com$
RewriteCond %{REQUEST_URI} !^/cms-1.1/*$
RewriteRule ^(.*)$ /cms-1.1/$1 [L]