Apache-2.2

如何儲存要在 Apache If 條件中使用的非標準 HTTP 請求標頭的值

  • July 13, 2013

我的伺服器將接收一個名為 EmployeeID 的非標準 HTTP 請求,我想用它來確定對伺服器上某些目錄的訪問權限。如何儲存傳入的非標準 HTTP 請求標頭的值,以便可以在 If 條件中使用 Apache 指令?

在網上搜尋了很長一段時間後,我想出了以下內容,我嘗試使用 RewriteRule 將標頭保存到環境變數中,以便以後可以訪問變數的值進行比較。不幸的是,我只遇到了挫折而不是成功。

<Direcory "\Apache24\htdocs\usrs">
  RewriteEngine on
  RewriteRule .* - [E=EmployeeID:%{HTTP:EmployeeID}]
  <If "{Request_URI} != /%{EmployeeID}/">
     Deny from all
  </If>
</Directory">

我認為您想使用SetEnvIf apache 指令。可能:

SetEnvIf EmployeeId "^(.+)$" eid=$1
<Directory "\Apache24\htdocs\usrs">
   Order Deny,Allow
   Deny from all
   Allow from env=eid
</Directory>

看看防止“圖像盜竊”的例子,我認為這可能會做一些類似於你需要的事情。

引用自:https://serverfault.com/questions/521081