NGINX 重定向除一个位置之外的所有内容

NGINX 重定向除一个位置之外的所有内容

我有一个用于 PHP 应用程序的平均 nginx 服务器配置。

我正在尝试将除一个位置块之外的所有请求重定向到新端点。

        location / { # redirect everything here
            return 301 https://example.com$request_uri;
        }

        location /backend { # except for this endpoint
            try_files $uri $uri/ /index.php?$query_string;
        }

        location ~ \.php$ {
            root {{ app_path }}/_system/public;
            fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;
            fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
            include fastcgi_params;
        }

但是我目前无法这样做。

通过阅读 Nginx 文档,我假设最具体的位置块将优先,因此对于任何 /backend 请求,都会使用 /backend。

但请求总是被重定向(使用位置/块)

我的配置中是否存在冲突?我遗漏了什么吗?

到目前为止,我已经查看了十几篇 ServerFault 帖子,但均未成功。

curl localhost/backend -I
HTTP/1.1 301 Moved Permanently

答案1

nginx 配置正确并按预期工作。

之前我尝试过进行应用程序级重定向但结果却很混乱。

相关内容