Apache .htaccess сравнивает 2 переменные - PullRequest
0 голосов
/ 03 мая 2019

Я пытаюсь сравнить значение 2 переменных в файле htaccess и выбросить 403, если они не совпадают, и это должно быть вложенным, если.

Вложено, если представляется возможным, но я не могу найти ничего, что говорит о том, что вы не можете сравнивать 2 переменные в операторе if. Кто-нибудь знает, действительно ли это возможно или возможно? Есть ли лучший способ сделать это в файле htaccess?

Спасибо.

RewriteEngine On
<If "%{ENV:LOAD_BALANCER_MODE} == '1'">
    <If "%{HTTP:X-LOAD-BALANCER} != %{ENV:LOAD_BALANCER_KEY}">
    RewriteRule .* - [F]
    </If>
</If>

1 Ответ

0 голосов
/ 14 мая 2019

Оказывается, проблема связана с запуском Apache в версии 2.4.25 - это стандартная версия Debian Stretch. Вложенный if недоступен до 2.4.26, как указано здесь: apache 2.4, вложенные If директивы .

Если вы пытаетесь сделать что-то подобное, используйте его, если с && - следующее точно так же, как и выше, работает с Apache 2.4.25:

RewriteEngine On
<If "%{ENV:LOAD_BALANCER_MODE} == '1' && %{HTTP:X-LOAD-BALANCER} != %{ENV:LOAD_BALANCER_KEY}">
    RewriteRule .* - [F]
</If>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...