Nginx返回位置

时间:2017-01-24 13:27:40

标签: redirect nginx url-redirection http-redirect nginx-location

我目前正面临一个小问题,使用nginx重定向到另一台主机。我想将https://service.company.com/new/test.html重定向到https://new-service.company.com/test.html

现在我有以下配置,将我重定向到https://new-service.company.com/new/test.html

[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE]
@=""
"NLS_LANG"="LATVIAN_LATVIA.BLT8MSWIN1257"

我也尝试过以下相同的结果:

server {
        # SSL
        ssl_certificate /etc/nginx/cert/chained_star_company.com.crt;
        ssl_certificate_key /etc/nginx/cert/star_company.com.key;

        listen 443;
        server_name service.company.com;

        location /new/$1 {
        return 301 $scheme://service-new.company.com/$1;
    }

}

1 个答案:

答案 0 :(得分:2)

您想要重写URI并重定向。您可以使用locationreturn指令来实现它,但rewrite指令是最简单的方法:

rewrite ^/new(.*)$ https://new-service.company.com$1 permanent;

有关详情,请参阅this document

BTW,您的location阻止解决方案的问题是正则表达式捕获,但事实并非如此。使用:

location ~ ^/new(.*)$ {
    return 301 https://new-service.company.com$1$is_args$args;
}

有关详情,请参阅this document