使用Nginx重写规则删除URL的一部分

ggazkfy8  于 2023-10-17  发布在  Nginx
关注(0)|答案(1)|浏览(152)

我有一个Nginx重写规则,应该删除abc

https://mypage.com/abc/home/filename?a=123&b=/a123/b123

和返回

https://mypage.com/home/filename?a=123&b=/a123/b123

我的规则是:

rewrite /abc/home/(.*)$ /home/$1 permanent;
location ~ ^/home(/.*)$ {
  root /my/path/to/app;
  proxy_pass http://localhost:1234;
}

相反,它将URL更改为:

https://mypage.com/home/abc/

它基本上取代 * 家 * 和 abc 和完全删除 * 文件名 *。
我错过了什么?

更新

我觉得nginx是不是不匹配**?字符。也许是因为Nginx对待?**不同?

yhuiod9q

yhuiod9q1#

这样的东西应该工作:

location ~ ^/abc/home/filename {
    rewrite ^/abc(/.*)$ /home/filename permanent;
}

它将清理abc,然后返回所有内容。

相关问题