RequestHeader Apache неэффективен, и эффект не виден в.htaccess
Это вопрос Apache. Я установил заголовок в моих файлах конфигурации с RequestHeader. (локальная установка Apache) Я вижу, что работает в соответствии с выводом пользовательского сценария php для сброса заголовков: заголовок есть.
Однако правило, основанное на наличии этого заголовка, не выполняется в.htaccess. Тот же файл.htaccess работает, как и ожидалось, на другом сервере.
Мой добавленный заголовок запроса не виден в.htaccess. Любая идея?
Apache conf: RequestHeader set X-Forwarded-Proto "https".htaccess: RewriteCond% {HTTP: X-Forwarded-Proto}! Https RewriteRule ^ https://%{HTTP_HOST}% {REQUEST_URI} [R = 301, L, NE]
Это зацикливается навсегда. Но он отлично работает на конфиге за балансировщиком нагрузки AWS.
2 ответа
Спасибо за помощь agent420.
Я наконец нашел решение... Требуется либо четкое понимание правил обработки Apache, либо некоторая удача (последняя в моем случае).
Рабочая директива: RequestHeader установил X-Forwarded-Proto "https" рано
Высокий, нежный, массивный акцент на слове "рано". Это все, что потребовалось... Надеюсь, что это пригодится другим. TEEBO
Работают ли другие правила в.htaccess на этом сервере? Потому что, если они этого не делают, это может быть связано с конфигурацией в файле конфигурации Apache (httpd.conf или apache2.conf в зависимости от вашего дистрибутива)
Отредактируйте этот файл. Ищите каталог вашего сайта... что-то вроде:
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
+ Изменить None
вAll
для AllowOverride
вариант. Перезапустите сервис Apache.
AllowOverride
Директива используется, чтобы разрешить использование.htaccess на веб-сервере, чтобы разрешить переопределение конфигурации Apache для каждого каталога. Смотрите этот документ для деталей