我正在尝试创建一个 RewriteRule,它会查看传入的 Header APIKey
,如果它包含匹配的字符串,那么它将重定向到相应的 URL,否则,它应该是无法访问的。
我正在使用带有 Post 方法的 Postman 测试这种场景。
请在下面找到我的代码:
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
/manager/
要阻止对任何以 HTTP 请求标头APIKey
未提供特定值(例如)开始的 URL 路径的访问(即 403 Forbidden),ABCD123456789
您可以使用以下 mod_rewrite 规则:
RewriteEngine On
RewriteCond %{HTTP:APIKey} !=ABCD123456789
RewriteRule ^/?manager/ - [F]
: RewriteCond %{ENV:APIKEY} ^ABCD123456789$ RewriteRule .* - [E:APIKEY=ABCD123456789]
这实际上什么也没做。它将环境变量设置APIKEY
为该值ABCD123456789
,但仅当环境变量APIKEY
已设置为该值时才会执行!