nginx 重写或内部重定向循环

mil*_*dos 13 nginx

当我尝试访问不存在的 URL 时,我正用头撞在一张桌子上,试图找出是什么导致了我的 nginx 配置中的重定向循环配置如下:

server {
        listen       127.0.0.1:8080;
        server_name  .somedomain.com;
    root  /var/www/somedomain.com;

        access_log /var/log/nginx/somedomain.com-access.nginx.log;
    error_log  /var/log/nginx/somedomain.com-error.nginx.log debug;

        location ~* \.php.$ {
        # Proxy all requests with an URI ending with .php*
        # (includes PHP, PHP3, PHP4, PHP5...)
        include /etc/nginx/fastcgi.conf;
        }

        # all other files
        location / {
            root  /var/www/somedomain.com;
        try_files $uri $uri/ ;
        }

    error_page 404 /errors/404.html;
        location /errors/ {
                alias /var/www/errors/;
        }       

        #this loads custom logging configuration which disables favicon error logging
        include /etc/nginx/drop.conf;
}
Run Code Online (Sandbox Code Playgroud)

此域是一个简单的 STATIC HTML 站点,仅用于某些测试目的。我希望 error_page 指令能够响应 PHP-FPM 无法找到给定文件,因为我打开了 fastcgi_intercept_errors;在 http 块和 nave error_page 设置中,但我猜测请求甚至在内部重定向某处之前就失败了。任何帮助将非常感激。

VBa*_*art 11

罪魁祸首是: try_files $uri $uri/ ;

http://nginx.org/r/try_files(注意最后一个参数是内部重定向的返回码或URI)

如果没有找到任何文件,则会进行到最后一个参数指定的 uri 的内部重定向。