nginx 301丢弃由vagrant转发的端口

时间:2014-01-23 15:10:28

标签: redirect nginx rewrite vagrant

我有一个在端口80上运行nginx的vagrant vm。我的主机将端口8080转发到vagrant vm的端口80.

我需要使用301重定向重写一个url,这有效,但我用来通过隧道(8080)访问nginx的端口被删除,重定向失败。

http://server.com:8080/blog/two

-becomes -

http://server.com/blog.php?article=two

- 它应该是 -

http://server.com:8080/blog.php?article=two

示例:

rewrite ^/blog/(.*)$ /blog.php?article=$1 last;

谢谢!

1 个答案:

答案 0 :(得分:0)

Host标题字段中提取原始端口号:

set $port '';

if ($http_host ~ :(\d+)$) {
    set $port :$1;
}

rewrite ^/blog/(.*)$ http://example.com$port/blog.php?article=$1;