LINUX.ORG.RU

а смысл в SetEnv?
mod_rewrite: RewriteCond

%{HTTP:header}, where header can be any HTTP MIME-header name, can always be used to obtain the value of a header sent in the HTTP request. Example: %{HTTP:Proxy-Connection} is the value of the HTTP header ``Proxy-Connection:".

следом сделайте RewriteRule на что хотите
а вообще, для проверки на HTTPS больше годится

RewriteCond %{HTTPS} on

frozen_twilight ★★ ()
Ответ на: комментарий от frozen_twilight

Насколько я понимаю, rewrite вернёт страницу с 301 или 302 вторым кодом, браузер перейдёт на указанную, но этого не достаточно.

Если по http в post передавались параметры, после редиректа они не будут переданы повторно. И плюс даже для get до редиректа параметры будут переданы браузером в открытом виде, что недопустимо

router ★★★★★ ()
Ответ на: комментарий от router

>rewrite вернёт страницу с 301 или 302

насколько я знаю так делает redirect. а rewrite просто вместо одной страницы вернет другую абсолютно прозрачно для пользователя

Pinkbyte ★★★★★ ()
Ответ на: комментарий от Pinkbyte

Это хорошо, но всё равно не то.

У меня есть nginx, который проксирует https запросы от пользователей на http сайт в apache

внешний пользователь ==https==> nginx ==http==> apache

и есть кривое приложнеие в apache, которое не во всех случаях обращает внимание на заголовок X-Forwarded-Proto, для формирования некоторых ссылок оно смотрит только на заголовок HTTPS.

Как временное решение, установил

SetEnv HTTPS on

в конфиге apache. Это работает, и вполне меня устраивает.

Но хочется идеала - не безусловного SetEnv, а обработки X-Forwarded-proto самим apache

Ни redirect, ни rewrite не пойдут потому, что

1) пользователь вообще не дойдёт до apache, т.к. его срежет nginx, работающий только по https

2) если разрешить nginx обработку http, получится что данные пользователя пойдут по незашифрованому соединению, что недопустимо.

router ★★★★★ ()
Ответ на: комментарий от borisych

через rewrite тоже самое пишется так (правда не уверен что работать будет):

RewriteCond %{HTTP:X-Forwarded-proto} ^https$
RewriteRule .* - [E=HTTPS:on]

borisych ★★★★★ ()
Ответ на: комментарий от borisych

Работает с

RewriteEngine On

Да, про rewrite я ошибался, подходит идеально.

router ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.