需要为 Apache 中的每个请求添加请求标头

mel*_*ger 6 requestheader apache-2.2

我正在尝试通过 Apache(版本 2.2)向每个请求添加标头值。我编辑了我的 VirtualHost 以包含以下变化:(我尝试了 RequestHeader 和 Header,在所有这些情况下添加和设置)

RequestHeader set X-test_url "Test"
Run Code Online (Sandbox Code Playgroud)

或者

<Directory />
  RequestHeader set X-test_url "Test"
</Directory>
Run Code Online (Sandbox Code Playgroud)

或者

<Location ~ "/*" >
  RequestHeader set X-test_url "Test"
</Location>
Run Code Online (Sandbox Code Playgroud)

很难解释我是如何走到这一步的,但我必须在 Apache 中完成这件事。我再次尝试将标头值添加到每个请求中。谢谢。

McJ*_*eff 4

所以你的第一个应该可以正常工作。我刚刚测试了以下内容。在 Red Hat 系统上,我将其添加RequestHeader add X-LocalHeader "Headers For the Win"到了 httpd.conf 文件中。

然后,我编写了一个快速的 Python 脚本来转储我的环境:


#!/usr/bin/python

import os
print 'Content-type: text/plain'
print

for tup in os.environ.items():
    print '%s: %s' % tup

最后,Apache 重新启动并curl产生以下结果:

[jeff@marvin ~]$curl http://localhost/cgi-bin/test.py
HTTP_接受:*/*
HTTP_USER_AGENT:curl/7.19.7
SERVER_NAME:本地主机
远程地址:127.0.0.1
服务器协议:HTTP/1.1
SCRIPT_FILENAME:/var/www/cgi-bin/test.py
远程端口:42551
服务器软件:Apache/2.2.13(Fedora)
SERVER_ADMIN:root@localhost
SCRIPT_NAME:/cgi-bin/test.py
服务器签名:Apache/2.2.13

请求方法:获取
HTTP_HOST:本地主机
服务器端口:80
网关接口:CGI/1.1
请求参数:
路径:/sbin:/usr/sbin:/bin:/usr/bin
REQUEST_URI:/cgi-bin/test.py
HTTP_X_LOCALHEADER:获胜的标头
服务器地址:127.0.0.1
DOCUMENT_ROOT:/var/www/html

如您所见,我设置了“HTTP_X_LOCALHEADER”值,它对应于我们之前添加的标头。看来你是对的,还是不行吗?