设置 nginx 反向代理并重写以应用于站点中的所有链接

设置 nginx 反向代理并重写以应用于站点中的所有链接

我有以下 Nginx 配置:

server {
    listen 80;

    location /test {
        rewrite /test(.*) /$1 break;
        proxy_pass "http://www.example.com/";
    }
}

这对于主页和输入'http://localhost/测试'我得到了http://www.example.com/并且 URL 仍然是“http://localhost/测试“”。

很酷,但是当我点击网站上的链接时,/more_examples我想让该链接被重写如下: http://localhost/test/more_examples。在实践中,我得到了以下结果:http://localhost/more_examples,这显然行不通。这可能吗?

任何帮助将不胜感激。

答案1

我已经测试了你的代码,对我来说,它的工作原理就像你描述的一样:

location /test {
  rewrite /test(.*) $1 break;
  proxy_pass http://www.basicwebsiteexample.com;
}

我调用http://localhost/test并获取像这样的子页面http://localhost/test/media

我的浏览器中没有出现任何重定向或 URL 重写。

如果您的浏览器中仍然出现 URL 重定向,则您代理的网站或 nginx 配置中一定存在重定向。

相关内容