Mat*_*oli 5 nginx php-fpm http-status-code-404
这是我的 php-fpm 配置:
location @site {
fastcgi_pass unix:/var/run/php5-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
fastcgi_intercept_errors on;
error_page 404 /404;
}
Run Code Online (Sandbox Code Playgroud)
因为fastcgi_intercept_errors已启用,当我的 PHP 路由器返回 404 时,Nginx 将重定向到/404. 好。
但是由于/404是由我的PHP应用程序生成的,并且我的PHP应用程序正确设置了404响应代码,那么Nginx会再次尝试处理错误!(显然以循环结束)
这个问题有方法解决吗?
nginx 这样做是因为您告诉它这样做。
fastcgi_intercept_errors on;
Run Code Online (Sandbox Code Playgroud)
这意味着nginx 不会提供由 PHP 生成的错误响应,而是让 nginx 处理它们。这样你就进入了你的无限循环。
要解决此问题,请删除此指令(默认为off)或将其显式设置为off。
| 归档时间: |
|
| 查看次数: |
3707 次 |
| 最近记录: |