如何存储非标准 HTTP 请求标头的值以在 Apache If 条件中使用

如何存储非标准 HTTP 请求标头的值以在 Apache If 条件中使用

我的服务器将收到一个名为 EmployeeID 的非标准 HTTP 请求,我想使用该请求来确定对服务器上某些目录的访问权限。如何存储传入的非标准 HTTP 请求标头的值,以便可以使用 Apache 指令在 If 条件中使用它?

在网上搜索了好长一段时间后,我找到了以下方法,我尝试使用 RewriteRule 将标头保存到环境变量中,以便稍后可以访问变量的值进行比较。不幸的是,我只遇到了挫折,而不是成功。

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

答案1

我认为你想使用设置环境变量apache 指令。可能:

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

看着那(这防止“图片盗窃”例如,我认为这可能会做一些与你需要的事情类似的事情。

相关内容