web-dev-qa-db-ja.com

Apacheのすべてのリクエストにリクエストヘッダーを追加する必要があります

Apache(ver 2.2)を介してすべてのリクエストにヘッダー値を追加しようとしています。私はVirtualHostを編集して、次のバリエーションを含めました:( RequestHeaderとHeaderの両方を試し、これらすべての場合に追加して設定しました)

RequestHeader set X-test_url "Test"

または

<Directory />
  RequestHeader set X-test_url "Test"
</Directory>

または

<Location ~ "/*" >
  RequestHeader set X-test_url "Test"
</Location>

私がどのようにしてこの点に到達したかを説明するのは難しいですが、Apacheでこれを行う必要があります。ここでも、すべてのリクエストにヘッダー値を追加しようとしています。ありがとう。

4
meleager

だからあなたの最初は大丈夫なはずです。以下をテストしました。 Red Hatシステムで、httpd.confファイルにRequestHeader add X-LocalHeader "Headers For the Win"を追加しました。

次に、簡単な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_ACCEPT:*/* 
 HTTP_USER_AGENT:curl/7.19.7 
 SERVER_NAME:localhost 
 REMOTE_ADDR:127.0.0.1 
 SERVER_PROTOCOL:HTTP/1.1 
 SCRIPT_FILENAME:/var/www/cgi-bin/test.py 
 REMOTE_PORT:42551 
 SERVER_SOFTWARE:Apache/2.2.13(Fedora)
 SERVER_ADMIN:root @ localhost 
 SCRIPT_NAME:/cgi-bin/test.py 
 SERVER_SIGNATURE: Apache/2.2.13 
 
 REQUEST_METHOD:GET 
 HTTP_Host:localhost 
 SERVER_PORT:80 
 GATEWAY_INTERFACE:CGI/1.1 
 QUERY_STRING :
パス:/ sbin:/ usr/sbin:/ bin:/ usr/bin 
 REQUEST_URI:/cgi-bin/test.py 
 HTTP_X_LOCALHEADER:Winのヘッダー
 SERVER_ADDR:127.0.0.1 
 DOCUMENT_ROOT:/var/www/html

ご覧のとおり、「HTTP_X_LOCALHEADER」値が設定されています。これは、前に追加したヘッダーに対応しています。正しく機能しているようですが、まだ機能していませんか?

2
McJeff