如何在 nginx 中转换(重写)部分 URL
Posted
技术标签:
【中文标题】如何在 nginx 中转换(重写)部分 URL【英文标题】:How to transform (rewrite) part of URL in nginx 【发布时间】:2018-01-16 18:47:57 【问题描述】:我正在尝试将流量重定向到我们的新服务器,但旧服务器 (Mac OS) 使用不区分大小写的文件名,而新(嵌入式)服务器使用 Linux(区分大小写)。 我的问题是从以下位置重定向流量:
http://server.com/NEW/variable_url
到
http://server.com/new/variable_url
(注意下方的“新”)。
我希望能够在不使用 perl 或 lua 或其他模块的情况下为 nginx 执行此操作,因为该服务器在嵌入式环境中运行。
到目前为止我尝试过:
location ~* ^/new/
access_log /var/log/nginx/new.log combined;
rewrite ^/new/(.*)$ $1 permanent;
没有成功。
【问题讨论】:
【参考方案1】:也许是这样的?
位置/新
重写 ^/NEW/(.*)$ /new;
【讨论】:
不工作,仍在尝试...它没有重定向到正确的页面。【参考方案2】:自己解决了。我错过了指向 Web 服务器根目录的根指令。所以对于任何感兴趣的人来说,解决方案是:
location ~* ^/NEW/
root /etc/nginx/html/;
rewrite /NEW/(.*)$ /new/$1 permanent;
【讨论】:
【参考方案3】:如果你想重定向来自特定链接/NEW/exampe1
的流量,你可以试试
location =/NEW/example1
rewrite ^ /new/example1 last;
【讨论】:
对不起,我的问题很糟糕,在这种情况下,“示例”可以是任何东西,因为有很多网站,它不是静态的。以上是关于如何在 nginx 中转换(重写)部分 URL的主要内容,如果未能解决你的问题,请参考以下文章