gpt4 book ai didi

位置匹配后 nginx 重写

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

我是 nginx 的新手,只是想做一些我认为应该很简单的事情。如果我这样做:-

curl http://localhost:8008/12345678

我希望返回 index.html 页面。但是我得到 404 未找到。/usr/share/nginx/html/12345678 没有那个文件

如果我执行 curl http://localhost:8008/,我希望请求被路由到 http://someotherplace/,但我发现 302,仅此而已。

对于基本问题深表歉意,但非常感谢您提供一些建议!

这是代码:

server {
listen 8008;
server_name default_server;

location / {
rewrite ^/$ http://someotherplace/ redirect;
}

location ~ "^/[\d]{8}" {
rewrite ^/$ /index.html;
root /usr/share/nginx/html;
}
}

最佳答案

^/$ 不匹配 URI /12345678 - 它只匹配 URI /

你可以使用:

rewrite ^ /index.html break;

^ 只是匹配任何内容的众多正则表达式之一。 break 后缀导致重写的 URI 在同一 location block 中进行处理。有关详细信息,请参阅 this document


您可以使用 try_files 指令获得相同的结果:

location ~ "^/[\d]{8}" {
root /usr/share/nginx/html;
try_files /index.html =404;
}

=404 子句永远不会到达,因为 index.html 始终存在 - 但 try_files 必须至少有两个参数。有关详细信息,请参阅 this document

关于位置匹配后 nginx 重写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55062274/

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