Re: Comparing environmental variables in httpd.conf for conditional logic

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

Joshua Slive wrote:
> On 5/21/07, Krist van Besien <krist.vanbesien@xxxxxxxxx> wrote:
>> On 5/21/07, West, Chris <chris.west@xxxxxxx> wrote:
>> > Hi Krist,
>> >
>> > Sorry to get back to you again, I have tried the format you described
>> > and still have problems, is the following how you would expect the
>> > rewrite condition to look?  I have tried both, neither giving the
>> result
>> > expected.
>> >
>> > 1.
>> >
>> >     RewriteCond %{HTTP_REFERER} ^.*%{ENV:SERVER_NAME}.*$ [OR]
>> >     RewriteCond %{HTTP_REFERER} ^$
>> >     RewriteRule .* - [E=dont_log_referer:true]
>> >
>> > 2.
>> >
>> >     RewriteCond %{ENV:HTTP_REFERER} ^.*%{ENV:SERVER_NAME}.*$ [OR]
>> >     RewriteCond %{ENV:HTTP_REFERER} ^$
>> >     RewriteRule .* - [E=dont_log_referer:true]
>>
>> After your other mail I know know that it is the "internal variable"
>> SERVER_NAME that you want to test against, and in this case
>> %{SERVER_NAME} ought to be correct. %{HTTP_REFERER} is also correct.
>>
>> What could be your problem is that SERVER_NAME is not containing what
>> you expect, and that therefore the rule doesn't match. Have you tried
>> turning rewritelog on, and setting the loglevel to 9? This ought to
>> give you a ton of information.
> 
> In any case, this isn't going to work. The regular expression used in
> RewriteCond (and RewriteRule and SetEnvIf) cannot contain variables.
> It is compiled at server-start and doesn't have access to anything
> per-request.
> 
> I don't think there is any way to do exactly what you want with
> standard modules. You'll need to specify the ServerName explicitly in
> the rules.

I don't believe that's true.  I have the following rewrite to remove a
prefix from the REMOTE_USER variable:

RewriteCond        %{LA-U:REMOTE_USER} ^EXT_(.*)$
RewriteRule        .* - [env=RU:%1]

and:

RewriteRule ^/$ http://%{SERVER_NAME}/site/ [R]


I haven't got a spare server to play around with at the moment, but I'm
sure something is possible.  Is it just a case of it doesn't like the
environment variable on the RHS argument?

As someone else asked, have you enabled the RewriteLog?


HTH,


				Neil.

-- 
Neil Hillard                    neil.hillard@xxxxxxxxxxxxxxxxxx
AgustaWestland                  http://www.whl.co.uk/

Disclaimer: This message does not necessarily reflect the
            views of Westland Helicopters Ltd.

---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx
   "   from the digest: users-digest-unsubscribe@xxxxxxxxxxxxxxxx
For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx


[Index of Archives]     [Open SSH Users]     [Linux ACPI]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Squid]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux