Nginx返回位置
Posted
技术标签:
【中文标题】Nginx返回位置【英文标题】:Nginx return under location 【发布时间】:2017-06-09 07:49:58 【问题描述】:我目前在使用 nginx 重定向到另一台主机时遇到了一个小问题。例如,我想将 https://service.company.com/new/test.html 重定向到 https://new-service.company.com/test.html 。
现在我有以下配置,将我重定向到https://new-service.company.com/new/test.html。
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;
我也尝试了以下相同的结果:
return 301 $scheme://service-new.company.com/$request_uri
【问题讨论】:
【参考方案1】:您想要重写 URI 并重定向。您可以使用location
和return
指令来实现它,但rewrite
指令将是最简单的方法:
rewrite ^/new(.*)$ https://new-service.company.com$1 permanent;
请参阅this document 了解更多信息。
顺便说一句,您的location
块解决方案的问题是正则表达式捕获,不是。使用:
location ~ ^/new(.*)$
return 301 https://new-service.company.com$1$is_args$args;
请参阅this document 了解更多信息。
【讨论】:
以上是关于Nginx返回位置的主要内容,如果未能解决你的问题,请参考以下文章