logo
Apache Lounge
Webmasters

 

About Forum Index Downloads Search Register Log in RSS X


Keep Server Online

If you find the Apache Lounge, the downloads and overall help useful, please express your satisfaction with a donation.

or

Bitcoin

A donation makes a contribution towards the costs, the time and effort that's going in this site and building.

Thank You! Steffen

Your donations will help to keep this site alive and well, and continuing building binaries. Apache Lounge is not sponsored.
Post new topic   Forum Index -> Apache View previous topic :: View next topic
Reply to topic   Topic: how to enable RequestHeader?
Author
scwindy



Joined: 18 Oct 2011
Posts: 3

PostPosted: Tue 18 Oct '11 8:01    Post subject: how to enable RequestHeader? Reply with quote

hello, everyone. I got a problem when I use mod_headers with apache.

my apache was configure as "./configure --enable-so --enable-rewrite --enable-proxy --enable-headers" to enable headers, and my server is config with:
Listen 10080

NameVirtualHost *:10080

<VirtualHost *:10080>
ServerAdmin webmaster@localhost
DocumentRoot "/usr/local/rzrq_proxy"

<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>

<Directory /usr/local/rzrq_proxy>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

ServerName rzrq_proxy
ErrorLog "/usr/local/apache2/logs/rzrq_proxy_error_log"
CustomLog "/usr/local/apache2/logs/rzrq_proxy_access_log" common

RequestHeader set USER "TestUser"
Header set REMOTE_USER "remote-user"

#ProxyRequests Off
#ProxyVia On

#<Proxy *>
#Order deny,allow
#Allow from all
#</Proxy>

#ProxyPass / http://192.168.188.156:8000/
#ProxyPassReverse / http://192.168.188.156:8000/
</VirtualHost>

when i started server and sent visit the 10080 port, the request header and reponse header is show like:

REQUEST:
GET / HTTP/1.1
Host: 211.150.96.16:10080
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.1Cool Gecko/20110614 Firefox/3.6.18 ( .NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: GB2312,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Cookie: session_id_8000=4477a45072e4a91c04a35eb2c905a4fec596f109

RESPONSE:
HTTP/1.1 303 See Other
Date: Tue, 18 Oct 2011 13:53:03 GMT
Server: CherryPy/3.1.2
Content-Length: 114
Content-Type: text/html;charset=utf-8
Location: http://211.150.96.16:10080/zh-CN/
Set-Cookie: session_id_8000=3c1a46903da09835bad54aaf886a58becd965345; expires=Wed, 19 Oct 2011 13:53:03 GMT; Path=/
REMOTE_USER: remote-user
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive

i think only the Header directive enabled, and RequestHeader directive is not.

how to enable RequestHeader? thank you.

ps: my test envirment:
Red Hat Enterprise Linux Server release 5.3
Apache 2.2.21, 2.0.50
Back to top
James Blond
Moderator


Joined: 19 Jan 2006
Posts: 7325
Location: Germany, Next to Hamburg

PostPosted: Tue 18 Oct '11 10:15    Post subject: Reply with quote

Code:

RequestHeader set USER "TestUser"
Header set REMOTE_USER "remote-user"


I think your problem is that you override that header with the second one. AFAIK you should use append instead if set for the second header.
Back to top
scwindy



Joined: 18 Oct 2011
Posts: 3

PostPosted: Tue 18 Oct '11 11:12    Post subject: Reply with quote

James Blond wrote:
Code:

RequestHeader set USER "TestUser"
Header set REMOTE_USER "remote-user"


I think your problem is that you override that header with the second one. AFAIK you should use append instead if set for the second header.


I change the header "USER" by another word like "X-USER-OTHER", and can't got in the browser's debug tools like firedebug(Firefox) or httpwatch(IE) debug infomation. Is the header set by RequestHeader can't be caught by browser's debug tools? Was the header sent before or after rebuild by browser? or just the version of apache? thank you!
Back to top
James Blond
Moderator


Joined: 19 Jan 2006
Posts: 7325
Location: Germany, Next to Hamburg

PostPosted: Tue 18 Oct '11 13:52    Post subject: Reply with quote

You can't view with a normal debugger, cause it is on the server side. In a php script you can see it with

Code:

echo $_SERVER["HTTP_USER"];


in a log file you might see it with

%{USER}i or %{HTTP_USER}i


Back to your question: with your posted config it works, but the RequestHeader will not send to the client.
Back to top
scwindy



Joined: 18 Oct 2011
Posts: 3

PostPosted: Thu 20 Oct '11 3:10    Post subject: Reply with quote

James Blond wrote:
You can't view with a normal debugger, cause it is on the server side. In a php script you can see it with

Code:

echo $_SERVER["HTTP_USER"];


in a log file you might see it with

%{USER}i or %{HTTP_USER}i


Back to your question: with your posted config it works, but the RequestHeader will not send to the client.


Hi,thank you for your help. but how can i get the value of some header send by apache with RequestHeader, just like "X-REMOTE-USER"? Use php script _SERVER, i can only get some header standard like "Host". Is there any mothods?
Back to top
James Blond
Moderator


Joined: 19 Jan 2006
Posts: 7325
Location: Germany, Next to Hamburg

PostPosted: Thu 20 Oct '11 11:47    Post subject: Reply with quote

OK,
within PHP you can try

apache_response_headers()
and
apache_request_headers()

works only if you run PHP as module in apache.
Back to top


Reply to topic   Topic: how to enable RequestHeader? View previous topic :: View next topic
Post new topic   Forum Index -> Apache