Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I'm trying to add a header value to every request via Apache (ver 2.2). I've edited my VirtualHost to include the following vaiations: (I've tried both RequestHeader and Header, add and set in all of these cases)

RequestHeader set X-test_url "Test"

or

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

or

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

It's hard to explain how I've gotten to this point, but I have to get this done in Apache. Again I'm trying to add the header value to every request. Thanks.

share|improve this question

1 Answer 1

up vote 0 down vote accepted

So your first ought work alright. I've just tested the following. On a Red Hat system, I added RequestHeader add X-LocalHeader "Headers For the Win" to my httpd.conf file.

Then, I put together a quick Python script to dump my environment:


#!/usr/bin/python

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

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

Finally, an Apache restart and a curl yields the following:

[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: 
PATH: /sbin:/usr/sbin:/bin:/usr/bin
REQUEST_URI: /cgi-bin/test.py
HTTP_X_LOCALHEADER: Headers For the Win
SERVER_ADDR: 127.0.0.1
DOCUMENT_ROOT: /var/www/html

As you can see, I have an 'HTTP_X_LOCALHEADER' value set, which corresponds to the header we added earlier. It looks like you had it right, is it still not working?

share|improve this answer
    
Yeah, that's what I thought too. For some reason it's not coming through. Did you add it to your httpd.conf inside a virtual host or outside of one? The docs listed RequestHeaders as only valid inside of certain nodes, one of which was virtualhost. –  meleager Mar 17 '10 at 20:57
    
Our config uses multiple files so I was trying to avoid editing the httpd.conf. That being said I found a Directory node in the httpd.conf that matches all directories and adding the RequestHeader worked. Thanks for the advice and nice to see a hockey fan. –  meleager Mar 17 '10 at 21:06

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.