On Thu, Nov 20, 2014 at 4:39 PM, Scott Severtson
<ssevert...@digitalmeasures.com> wrote:
> I've read the manual and searched extensively on this, but I seem to be
> missing something. How can I substitute just the requested *hostname*
> (excluding a non-standard port) in a redirect? I tried:
>
> http-request redirect prefix http://%[hdr(host)].example.com code 301
>
>
> However, this preserves the non-standard port number if specified in the
> request, resulting in something like:
>
> Request:
> GET / HTTP/1.1
> Host: original-hostname.com:81
>
> Response:
> HTTP/1.1 301 Moved Permanently
> Location: http://original-hostname.com:81.example.com/
>
> I'll have a fairly sizeable and dynamic lists of hosts, so adding explicit
> per-host ACLs/redirects is not desired.
>
> Is there any way to strip the requested port from the host header? Is there
> any other way to substitute just the requested hostname?
>
> Thanks!
> --Scott


Hi Scott,

You can try to strip it before generating the rewrite:
http-request replace-value Host (.*):.* \1 if { hdr_sub(Host) : }
http-request redirect prefix http://%[hdr(host)].example.com code 301

Baptiste

Reply via email to