我有一个用于 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 配置正确并按预期工作。
之前我尝试过进行应用程序级重定向但结果却很混乱。