@deepin

Что в этом коде не так?

/
RewriteEngine On
RewriteCond %{HTTPS}_%{HTTP_HOST} ^(?|off_(?:www\.)?(.*)|on_www\.(.*)) [NC]
RewriteRule .* https://%1/$0 [R=301,L]
RewriteRule ^(.*)$ /public/$0

/public/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php?$0 [L,QSA]

на локалке всё работает, но на хостинге уходит в цикл
  • Вопрос задан
  • 63 просмотра
Пригласить эксперта
Ответы на вопрос 1
@dodo512
на локалке всё работает, но на хостинге уходит в цикл

Ну так на локалке наверняка Apache напрямую принимает запросы клиента и условие с проверкой %{HTTPS} работает номально.
А на хостинге запросы по http и https принимает какой-нибудь обратный прокси, который на Apache передаёт уже без шифрования, так что в %{HTTPS} всегда "off". В этом случае могут работать разные варианты вроде %{ENV:HTTPS}, %{HTTP:X-Forwarded-Proto}.
На сайте хостера в справке обычно есть информация о том, как у них работает редирект на https.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы