Hi Andreas,

Le 03/12/2015 12:23, Andreas Mock a écrit :
Hi all,

I'm using this snippet in the config of version 1.5.14 of haproxy:

http-request redirect location 
https://www.domain.%[req.fhdr(accept-language),lower,language(de-at;de-ch,de),map(/etc/haproxy/language-map.txt,de)]/
 code 301

As soon as there is NO Accept-Language-Header in the request
the whole substitution part evaluates to '' (empty string).
Why is this the case as I thought that the defaulting of 'language' and 'map'
should give a 'de'.

Can someone please explain? What is the way around this?

The converters only apply if the sample fetch matches. If no Accept-Language header is provided, req.fhdr(accept-language) will return "false" (no match) and none of the lower/language/map converters will be called.

A workaround could be to add the header before the redirect if none exists.

http-request set-header Accept-Language de if !{ req.hdr(Accept-Languuage) -m found }


--
Cyril Bonté

Reply via email to