nginx总是在域后添加尾部斜杠



我一直在寻找,我看不出我做错了什么。

基本上,我有两个域,并希望根据访问的域路由到后端服务。

  • clientkey.local
  • clientkey.strapi.local

当我访问这些域中的每一个时,它会将 url 重写为:

  • clientkey.local/
  • clientkey.strapi.local/

如果我只是访问基本域,则没有必要添加额外的斜杠。如果需要,我可以添加尾部斜杠,并且仍然会在主页上结束,但它不应该自动将我重定向到那里。下面是我的nginx配置。

有什么想法吗?如果这很重要,我正在使用 docker-compose。我觉得我错过了一些明显的东西。

worker_processes 4;
events { worker_connections 1024; }
http { 
upstream strapi_servers {
server strapi:1337;
}
upstream gallery_servers {
server gallery;
}
server {
listen 80;
server_name clientkey.strapi.local;
location / {
proxy_pass http://strapi_servers;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_pass_request_headers on;
}
}
server {
listen 80;
server_name clientkey.local;
location / {
proxy_pass http://gallery_servers;
proxy_redirect     off;
proxy_set_header   Host $host;
proxy_set_header   X-Real-IP $remote_addr;
proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header   X-Forwarded-Host $server_name;
}
}
}

快速测试表明,对于非公共TLD网站(Chromium/Chrome(,斜杠并没有隐藏。

换句话说,如果 TLD 不是真实的,那么斜杠就不会被省略。

  • 示例.本地 - 显示斜杠
  • 示例.anyting-non-real - 显示斜杠
  • example.com - 斜杠隐藏

最新更新