С www на не-www с SSL без index.php
Когда я пытаюсь зайти на свой сайт с URL www.mypage.com, я получаю что-то вроде http://www.mypage.com/index.php/https://mypage.com/https://www.mypage.com....
Когда я захожу с URL mypage.com, я получаю https://mypage.com/ - И ЕГО ОК
Когда я вхожу с URL mypage.com/stuff, я получаю https://mypage.com/index.php/stuff (страница работает)
Когда я вхожу с URL www.mypage.com/stuff, я получаю https://mypage.com/index.php/stuff
Что я должен делать? Я хотел бы, чтобы URL всегда был https://mypage.com/ без index.php и без "www".
Мой.htaccess:
AddHandler application/x-httpd-php70 php
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
Спасибо!
1 ответ
Решение
Попробуйте изменить порядок так, чтобы внутренний редирект на index.php/$1 выполнялся последним:
AddHandler application/x-httpd-php70 php
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]