nginx - 如何在不以斜杠结尾的情况下路由特定的 uri 端点
nginx - how to route a specific uri endpoint without having it ending with a slash
我当前的设置:
- 用户输入www.example.com/example/xx/healthcheck
- kubernetes traefik 入口以后端作为 /example 并转到 nginx 服务
- 具有这种小配置的 nginx:
server {
listen 80;
listen [::]:80;
server_name localhost;
location /example/xx/healthcheck {
root /usr/share/nginx/html;
index output.html;
}
我把 output.html 放在 /usr/share/nginx/html/example/xx/healthcheck
里面
我的问题是,当我点击 www.example.com/example/xx/healthcheck 时,它没有加载页面。它只有在末尾有斜线时才有效
www.example.com/example/xx/healthcheck/
有没有合适的更好的方法来做到这一点?我想要 www.example.com/example/xx/healthcheck 并且它到达了页面。
谢谢
您可以使用
location = /example/xx/healthcheck {
default_type text/html;
alias /any/path/to/output.html;
}
注意 - slash-ended 请求 www.example.com/example/xx/healthcheck/
将不再适用于此配置,尽管如果您将 location /example/xx/healthcheck { ... }
用作第二个请求或使用重写规则它会起作用喜欢
rewrite ^/example/xx/healthcheck/$ /example/xx/healthcheck;
我当前的设置:
- 用户输入www.example.com/example/xx/healthcheck
- kubernetes traefik 入口以后端作为 /example 并转到 nginx 服务
- 具有这种小配置的 nginx:
server {
listen 80;
listen [::]:80;
server_name localhost;
location /example/xx/healthcheck {
root /usr/share/nginx/html;
index output.html;
}
我把 output.html 放在 /usr/share/nginx/html/example/xx/healthcheck
里面我的问题是,当我点击 www.example.com/example/xx/healthcheck 时,它没有加载页面。它只有在末尾有斜线时才有效 www.example.com/example/xx/healthcheck/
有没有合适的更好的方法来做到这一点?我想要 www.example.com/example/xx/healthcheck 并且它到达了页面。
谢谢
您可以使用
location = /example/xx/healthcheck {
default_type text/html;
alias /any/path/to/output.html;
}
注意 - slash-ended 请求 www.example.com/example/xx/healthcheck/
将不再适用于此配置,尽管如果您将 location /example/xx/healthcheck { ... }
用作第二个请求或使用重写规则它会起作用喜欢
rewrite ^/example/xx/healthcheck/$ /example/xx/healthcheck;