Я собираюсь выполнить 3 задачи перезаписи в моем файле .htaccess:
- Перенаправить example1.com на example2.com
- Перенаправление без www на www
- Перенаправить http на https
Да, я понимаю, что на все эти вопросы здесь задавались и отвечались индивидуально, но я пытаюсь понять, как объединить эти ответы вместе для максимально эффективного переписывания. Кроме того, когда я пытаюсь реализовать отдельные перезаписи для каждого из этих # 1 или # 2 или # 3, они конфликтуют друг с другом и отправляют меня в цикл перенаправления.
Самым близким, что я смог найти, был Амин Хайюссеф : Перенаправить несколько доменов в папку + без www на www
# redirect non-www to www
ReWriteCond %{HTTP_HOST} !^www\.
RewriteRule (.*) http://www.%{HTTP_HOST}/$1 [R=301]
ReWriteCond %{HTTP_HOST} ^www.domain.com [OR]
ReWriteCond %{HTTP_HOST} ^www.domain.co.uk [OR]
ReWriteCond %{REQUEST_URI} !domain/
ReWriteRule ^(.*)$ domain/$1 [L]
Это то, что у меня сейчас есть в моем файле .htaccess:
# Redirect example1.com to www.example2.com
RewriteCond %{HTTP_HOST} ^example1\.com$ [NC]
RewriteRule ^(.*)$ https://www.example2.com [R=301,L]
# Redirect www.example1.com to www.example2.com
RewriteCond %{HTTP_HOST} ^www.example1\.com$ [NC]
RewriteRule ^(.*)$ https://www.example2.com [R=301,L]
# Force non-www to www
RewriteCond %{HTTP_HOST} ^example2.com [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301,NC]
Проблема в том, что ничего не перезаписывается при переходе на http://www.example2.com, когда он должен применять SSL и переписывать на https://www.example2.com.
В конечном счете, я уверен, что есть более чистый способ решения всех трех перезаписей с более эффективным фрагментом кода. Заинтересованы в рекомендациях по объединению этих битов логики или разделению их для удобства обслуживания.
Спасибо!