gpt4 book ai didi

nginx 重写 url 并删除最后一部分

转载 作者:行者123 更新时间:2023-12-01 03:17:52 29 4
gpt4 key购买 nike

对不起,如果这个问题被问了很多次。我无法让 nginx 进行正确的重写。我需要删除网址的最后一部分。例如,这是我拥有的网址:

https:/mydomain.com/this/is/some/url/page/0
https:/mydomain.com/this/is/some/url/page/1

我需要将这些都重写为:
https:/mydomain.com/this/is/some/url

这是我迄今为止尝试过的:
location / {

...
rewrite ^/(.*)/page/0|1$ $1 last;

...
}

但它不起作用。在我看来它是正确的?这有什么问题? (我讨厌正则表达式)。

编辑:
location / {
# Remove trailing double slashes.
if ($request_uri ~ "^[^?]*?//") {
rewrite "^" $scheme://$host$uri permanent;
}
# Remove trailing slashes.
rewrite ^/(.*)/$ /$1 permanent;

# Rewrite page/0 and page/1 from url.
rewrite ^/(.*)/page/[01]$ /$1 last;

proxy_pass http://backend_web;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}

最佳答案

0|1应该在括号内或重新定义为字符类。

重写的 URI 需要一个前导 /一样nginx URI 有一个领先的 / .

所以所有这些都应该是等价的:

rewrite ^/(.*)/page/(0|1)$ /$1 last;
rewrite ^/(.*)/page/[01]$ /$1 last;
rewrite ^(/.*)/page/[01]$ $1 last;

有一个有用的正则表达式网站 here .

关于nginx 重写 url 并删除最后一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47772291/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com