httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Eric Covener <>
Subject Re: [users@httpd] Setting CGI environment variables, dynamically, from httpd.conf leveraging exising variables
Date Tue, 28 Sep 2010 14:43:19 GMT
On Tue, Sep 28, 2010 at 10:02 AM, David (Dave) Donnan
<> wrote:
> RewriteEngine on
> RewriteRule .* - [E=SMUSER:%{$REMOTE_USER}]
> RequestHeader set my_new_header %{SMUSER}e
>         Result from my browser (
>         SMUSER=""

I think the $ is extraneous and causing problems. Another potential
problem --  See the "lookahead" feature to figure out REMOTE_USER when
your RewriteRules are running in a phase before REMOTE_USER is set!

You may be able to wrap your rules in <Directory>, which makes the
Rewrite occur a little bit later, and might let some rules like this
work better.

Finally, why do you want to set the environment variable in a request
header? Is this just some debug you added along the way, or your
ultimate goal?

> Question 1: The syntax is incredibly cryptic. Where might I look to help me
> understand the %, e, {} etc.
The variable syntax for RequestHeader is defined in a table at the
bottom of the Header directive:

The syntax for mod_rewrite is midway down in the doc for RewriteRule:

> Mind you, it works for simple text:
> RewriteRule .* - [E=SMUSER:test]
> Result: SMUSER="test"
> 2. Technique 2: setenv DAVESETENV "text"
> ----------------------------------------------
>     Result: DAVESETENV="text"
> But, I've read that this is only a static string.

setenvif is a bit more flexible:

Eric Covener

The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:> for more info.
To unsubscribe, e-mail:
   "   from the digest:
For additional commands, e-mail:

View raw message