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将重定向到/ 404.好.

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

这个问题有方法解决吗?

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

    fastcgi_intercept_errors on;

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

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

dawei

【声明】:淮南站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。