<p dir="ltr">Hi, </p>
<p dir="ltr">Maybe you can use following config which is shorter and does not use the evil "if".</p>
<p dir="ltr">map $http_host $redirect_port {<br>
  default   "";<br>
  .*(:\d+)  $1;<br>
}</p>
<p dir="ltr">return 302 $scheme://$host$redirect_port/<your URL></p>
<br><div class="gmail_quote"><div dir="ltr">On Tue, Aug 25, 2015, 06:35 Joó Ádám <<a href="mailto:adam@jooadam.hu">adam@jooadam.hu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
The return directive allows the use of URLs relative to the server, in<br>
which case the scheme, server name and port are automatically<br>
prepended by Nginx.<br>
<br>
The port is, however, the port on which the request was received,<br>
which is not always the port to which the request was sent, i. e. the<br>
one specified in the Host header field. For example, tunneling<br>
<a href="http://nginx.org:80" rel="noreferrer" target="_blank">nginx.org:80</a> through <a href="http://example.com:8000" rel="noreferrer" target="_blank">example.com:8000</a> a redirect will lead to<br>
<a href="http://example.com:80" rel="noreferrer" target="_blank">example.com:80</a>.<br>
<br>
Also, there is no variable exposing this value, so one must extract it<br>
themselves to explicitly specify in the redirect URL:<br>
<br>
    set $is_port '';<br>
    set $port '';<br>
<br>
    if ($http_host ~ :(\d+)$) {<br>
        set $is_port ':';<br>
        set $port $1;<br>
    }<br>
<br>
Maybe this is something that would worth considering as an<br>
enhancement. Making return use the port in the Host header or to<br>
preserve backwards compatibility, introducing a switch,<br>
request_port_in_redirect, complementing server_name_in_redirect, off<br>
by default, and at the same time exposing this in a $request_port<br>
variable.<br>
<br>
What do you think?<br>
<br>
<br>
Ádám<br>
<br>
_______________________________________________<br>
nginx mailing list<br>
<a href="mailto:nginx@nginx.org" target="_blank">nginx@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx" rel="noreferrer" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx</a></blockquote></div>