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 для каждого каталога. Смотрите этот документ для деталей

Другие вопросы по тегам