С 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]
Другие вопросы по тегам