【问题标题】:How to remove trailing slash from url in nginx?如何从 nginx 中的 url 中删除尾部斜杠?
【发布时间】:2018-11-22 18:48:29
【问题描述】:

我正在使用 PHP-FastCGI 在 nginx 上运行服务器。目前我已经设置了它,以便它从我的 URL 中删除尾部斜杠并发出 301 重定向。但是,当我访问存在的目录时,“err_too_many_redirects”(如果我尝试检查诸如 site.com/images/ 或其他目录链接之类的链接是否返回 403 代码),我的服务器块如下所示:

server {
   server_name    example.com www.example.com;
   root           /var/www/example.com/html;
   index          index.html;

   rewrite ^/(.*)/$ /$1 permanent;

   error_page 404 403 /404.html;
   location = /404.html {
   internal;
}

   error_page 500 502 503 504 /500.html;
   location = /500.html {
   internal;
}

   location / {

   try_files $uri $uri.html $uri/ $uri/index.html $uri/index $uri/ =404;
}

listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot


}

谁能帮我找到解决这个问题的灵魂?

【问题讨论】:

  • $uri/ 术语与您的 rewrite 规则将创建一个循环。试试:try_files $uri $uri.html $uri/index.html $uri/index =404;
  • 谢谢它对我有用。干杯!

标签: nginx server configuration


【解决方案1】:

$uri/ 术语与您的重写规则一起将创建一个循环。试试:

try_files $uri $uri.html $uri/index.html $uri/index =404;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-09
    相关资源
    最近更新 更多