mod_rewrite и nginx

lealhost
На сайте с 07.06.2014
Offline
136
1502

Добрый день!

Ситуация такая: nginx стоит как фронт и берет 443 порт на себя, тем самым mod_rewrite некорректно отображает переменные %{HTTPS} и %{SERVER_PORT}.

Первая всегда показывает off, а вторая 80 порт (ясное дело :bl: ).

Может есть какой-нибудь патч на это дело? :)

Но, даже если нет, интересуют способы передачи переменной из nginx прямиком в неймспейс mod_rewrite.

Boris A Dolgov
На сайте с 04.07.2007
Offline
215
#1

Добрый день,

в nginx:

proxy_set_header X-Forwarded-Proto $scheme;

в .htaccess:

        RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

Еще свежий mod_rpaf из github (https://github.com/gnif/mod_rpaf) поддерживает установку https в зависимости от X-Forwarded-Proto или X-HTTPS

С уважением, Борис Долгов. Администрирование, дешевые лицензии ISPsystem, Parallels, cPanel, DirectAdmin, скины, SSL - ISPlicense.ru (http://www.isplicense.ru/?from=4926)
lealhost
На сайте с 07.06.2014
Offline
136
#2

Спасибо, Борис!

Не знал как вытянуть глобальные переменные с префиксом HTTP через mod_rewrite :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий