soundie
@soundie
Преподаватель, программист, писатель

Как решить HTTPS конфликт двух .htaccess?

В корне сайта лежит .htaccess следующего стандартного содержания (переводит всё на протокол HTTPS):
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]


Также в корне сайта лежит папка news, в которой в свою очередь лежит файл .htaccess, осуществляющий перенаправление (роутинг) запросов /news/{что угодно} на просто /news:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php [L]

К сожалению если на главной странице сайта кликнуть по разделу news, то https пропадает и всё открывается по обычному http. Если нажать обратно на главную - снова https. Всё остальное (роутинг) прекрасно работает. Страницы из других разделов где нет .htaccess файла прекрасно открываются по https.

Как сделать так, чтобы при переходе на раздел news сохранялся https? (пробовал добавить те же правила что и в главном .htaccess - не помогло)
  • Вопрос задан
  • 67 просмотров
Решения вопроса 1
soundie
@soundie Автор вопроса
Преподаватель, программист, писатель
Решилось всё само собой - сначала удалил .htaccess в /news, перешел на страницу чтобы проверить что правила отключены и https работает. Далее туда же загрузил ровно такой же .htaccess и снова перешел на страницу - заработало как надо. Видимо настройки Apache на хостинге не обновились, поэтому не запускалось то, что должно было запуститься. Или я возможно намудрил с предыдущими настройками, что Apache их не обновлял при изменении .htaccess.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
pfilippov
@pfilippov
переместите второй редирект в корневой htaccess после 301 на https и пропишите его в явном виде.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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