Вопрос по SSL сертификату.

Всем привет, перевожу свой сайт на ssl, прописал в Системные настройки -> server_protocol Установил https. Потом:

if (!defined('MODX_URL_SCHEME')) {
$url_scheme=  $isSecureRequest ? 'https://' : 'http://';
//заменить на:
if (!defined('MODX_URL_SCHEME')) {
$url_scheme=  'https://';

И потом ставлю:

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://SITE-NAME.ru/$1 [R=301,L]

При входе по прямой ссылке на главную страницу все нормально редиректит, но как только перехожу через меню на другую страницу фраза "Выполнено слишком много перенаправлений". Может кто подскажет в чем причина?

Comments

А зачем вам такое?

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://SITE-NAME.ru/$1 [R=301,L]

В .htaccess самого MODX есть такое:

RewriteCond %{SERVER_PORT} !^443
RewriteRule (.*) https://example-domain-please-change.com/$1 [R=301,L]

Вам это значительно больше должно подойти.

откомментировал эти строки, но все равно такая же проблема

А это закомментировали?

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://SITE-NAME.ru/$1 [R=301,L]

Вообще, бесконечный редирект срабатывает из-за того, что постоянно выполняется условие редиректа. Но уверены, что редирект именно на уровне .htaccess? Может еще на уровне MODX в чем экспериментировали?

  1. Закомментируйте все правила редиректа в .htaccess и убедитесь, что ошибка редиректа пропала (пусть даже и вообще перестанет работать редирект).
  2. Если все дело именно на уровне .haccess, то тогда скорее всего %{SERVER_PORT} не равняется 443. Это вопрос уже настройки хостинга. То есть если эта переменная отсутствует, то она в любом случае не будет равна 443 и поэтому всегда будет выполняться редирект. По этому вопросу лучше обратиться в саппорт хостинга.

Я просто взял нормальный .htaccess с официального сайта modx и там раскомментировал нужные строки, просто какой-то кастом у меня стоял в .htaccess.