Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Apache config read header value

Tags:

apache

header

Is there a way to read the value of a request header in Apache config? I want to avoid going into the .htaccess file and even better if I could avoid using SetEnvIf. I'm trying to implement the suggestion here: https://stackoverflow.com/a/1850482/138228

I can't really find much on this topic outside of using regex. What I'm looking for is something like :

Header set NAME = %{value_of_different_header}%

like image 760
stan Avatar asked Feb 14 '26 05:02

stan


1 Answers

Reading answer from : https://serverfault.com/questions/136428/header-set-access-control-allow-origin-not-working-with-mod-rewrite-mod-jk

It seems the solution is:

SetEnvIf Origin "http(s)?://(domaine1\.com|domain2\.com)$" AccessControlAllowOrigin=$0
Header always set Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin

But this has nothing to do with .htaccess, you can put such lines in regular apache configuration file (virtualhost?) without using the bad .htaccess dynamic configuration files.

The value part of the Header instruction is:

value may be a character string, a string containing format specifiers or a combination of both

But the only format specifiers available are %% (for %), %t for a timestamp, %D (idem), %{foo}e and %{foo}s for environments variables.

SetenvIf is a good apache tool to read a request header, here reading the Origin header. Then, using environment variables is the classical way of writing complex things in Apache (I mean the way to store some sort of variables).

So I don't know why you would like another solution.

like image 176
regilero Avatar answered Feb 15 '26 19:02

regilero