.htaccess: перенаправление на основной домен HTTPS

У меня есть эта действительно странная проблема, которую я уже потратил много времени на изучение, но не смог найти решение.

По сути, у меня есть несколько доменов, припаркованных на сервере, но для простоты, давайте предположим только 2 домена:

  1. example.co.nz (основной)
  2. example.com

У меня есть 2 требования, которые я хотел бы удовлетворить:

  • а) Я хочу, чтобы весь трафик с (2) перенаправлялся на (1)
  • б) я хочу, чтобы весь HTTP-трафик был перенаправлен на HTTPS

В общем, в одном предложении я хочу, чтобы весь трафик просто https://www.example.co.nz независимо от того, какие шаблоны URL я печатаю в адресной строке.


Я написал .htaccess файл в корне, как это:

SetEnv TZ

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTPS} !^on [OR]
RewriteCond %{HTTP_HOST} !^www\.example\.co\.nz
RewriteRule (.*) https://www.example.co.nz/$1 [R=301,L]

RewriteCond %{REQUEST_URI} ^/(system|lib)(.*)$
RewriteRule ^(.*)$ index.php?/$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

Следующие работы:

Следующее не перенаправляется:


  • Может быть, у кого-нибудь есть идеи, почему это происходит?

Мне было интересно, связано ли это с моим htaccess или с самим сервером.

Любая помощь будет высоко ценится.

0

Решение

Нашел проблему.

Редирект на самом деле работает. Вы получите предупреждение о сертификате на https://www.example.com когда вы пытаетесь зайти на сайт. Как только вы примете предупреждение, вы будете перенаправлены на https://www.example.co.nz/.

Это потому, что проверка SSL применяется до того, как .htaccess переписывает. Поскольку для www.example.com не установлен сертификат, вы получите предупреждение.

Единственный способ обойти это — также установить сертификат SSL для www.example.com.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]