@kosar91

Почему не работает 301 редирект на HTTPS?

Требуется сделать редирект с www на сайт без www, а также с HTTP на HTTPS. Прописал следующее:

RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.
RewriteRule ^(.*)$ https://site.ru/$1 [R=301,L]

На www.site.ru - редирект работает
На site.ru - редирект работает
На https://www.site.ru - не работает, причем также не работают никакие RewriteRule
На https://site.ru - работают все RewriteRule

Очень похоже, что mod_rewrite вобще выключен, но phpinfo() показывает обратное, причем на https://site.ru - все работает. Что это может быть?
  • Вопрос задан
  • 2479 просмотров
Решения вопроса 1
@kosar91 Автор вопроса
Нашел в чем проблема была. Как я и предполагал, apache не видел файл .htaccess. А не видел он его из-за директивы AllowOverride None. Сисадмин создал несколько файлов конфигурации хостов для apache, почти одинаковых, кроме этой директивы. Сайт с https://site.ru - грузился по одному файлу конфигурации, а https://www.site.ru по другому, в котором директива AllowOverride отключена.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
shambler81
@shambler81 Куратор тега htaccess
1 у вас разом не nginx PHP-FPM ? в таком варианте мод реврайт вам не подходит впринципе.
2. зачем мухи и катлеты отдельно.
Две задачи два правила.
Отлаживайте по отдельности.
3. у вас nginx+apache притом общение между ними происходит только по http с редиректом в nginx на http, в резьтате у вас цикл апач гонит на https nginx на http
4. Есть перепрывающие правила.
Ответ написан
@heike
Почему часть директа работает, а часть нет?

Та, что в начале стоит, работает. Например, все категории работают, а https и ещё один перестал.
Если переставить порядком, то заработает первый, а остальные перестанут.

В чём тут может быть дело? Есть у кого нибудь идеи?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы