nginx – 提供由PHP生成的自定义404页面

前端之家收集整理的这篇文章主要介绍了nginx – 提供由PHP生成的自定义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;
}

因为启用了fastcgi_intercept_errors,当我的PHP路由器返回404时,Nginx将@R_301_458@到/ 404.好.

但是因为/ 404是由我的程序生成的,并且我的程序正确设置了404响应代码,所以Nginx将尝试再次处理错误! (显然以循环结束)

这个问题有方法解决吗?

最佳答案
Nginx这样做是因为你告诉了它.

    fastcgi_intercept_errors on;

这意味着nginx will not serve error responses generated by PHP,但是让Nginx处理它们.因此,你进入无限循环.

解决此问题,请删除此指令(默认为关闭)或将其明确设置为off.

猜你在找的Nginx相关文章