我正在嘗試創建一個 RewriteRule,它會查看傳入的標頭APIKey
,如果它包含匹配的字串,那麼它將重定向到相應的 URL,否則它應該無法訪問。
我正在使用帶有 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
/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
已設定為該值時!