RewriteCond для APIKEY

RewriteCond для APIKEY

Я пытаюсь создать правило RewriteRule, которое просматривает входящий заголовок на предмет наличия соответствующей строки, APIKeyи если он содержит соответствующую строку, то перенаправляет на соответствующий URL-адрес, в противном случае он должен быть недоступен.

Я тестирую этот сценарий, используя Postman с методом Post.

Ниже вы найдете мой код:

RewriteEngine On
RewriteCond %{REQUEST_URI}  ^/manager/(.*)
RewriteCond %{REQUEST_URI}  ^/manager/secure/rest/groovy-service-invoke/v2/demo/firewall-test/v0.1.0/(.*)$
RewriteCond %{ENV:APIKEY}   ^ABCD123456789$
RewriteRule .* - [E:APIKEY=ABCD123456789]

решение1

Чтобы заблокировать доступ (например, 403 Forbidden) к любому URL-пути, который начинается, /manager/когда заголовок HTTP-запроса APIKeyне содержит определенного значения (например, ABCD123456789), можно использовать следующее правило mod_rewrite:

RewriteEngine On

RewriteCond %{HTTP:APIKey} !=ABCD123456789
RewriteRule ^/?manager/ - [F]

:
RewriteCond %{ENV:APIKEY}   ^ABCD123456789$
RewriteRule .* - [E:APIKEY=ABCD123456789]

На самом деле это ничего не делает. Это устанавливает переменную окружения APIKEYв значение, ABCD123456789но только когда env var APIKEYуже установлена ​​в это значение!

Связанный контент