【问题标题】:nginx + fastCGI for PHP error_pagenginx + fastCGI for PHP error_page
【发布时间】:2012-05-24 22:37:49
【问题描述】:

我在 nginx 中使用 fastCGI 为 PHP 设置了自定义错误页面,就像这样,它可以工作:

root <FOLDER>;
error_page 404 /error.php?404;
location = /error.php {
    include /etc/nginx/fastcgi.conf;
    fastcgi_pass  127.0.0.1:1234;
    root  <FOLDER>;
}

但由于我对每个 HTTP 错误代码都有一个 error.php,所以我想以通用形式进行设置。问题是我不知道nginx是否提供了要通过GET传递给error.php的错误码

我正在寻找类似的东西:

root <FOLDER>;
error_page 500 501 502 401 402 403 404 /error.php?NGINX_ERROR_CODE;
location = /error.php {
    include /etc/nginx/fastcgi.conf;
    fastcgi_pass  127.0.0.1:1234;
    root  <FOLDER>;
}

问题是NGINX_ERROR_CODE,我不知道它是否提供这样的东西来设置通用的error_page处理程序。

有什么办法吗?

【问题讨论】:

    标签: php nginx fastcgi custom-error-pages


    【解决方案1】:

    谷歌搜索,最初似乎没有它的 var。

    但是,您可以设置多个错误页面指令。

    error_page 401 /error.php?e=401;
    error_page 402 /error.php?e=402;
    error_page 403 /error.php?e=403;
    error_page 404 /error.php?e=404;
    error_page 500 501 502 /error.php?e=50x;
    

    等等。

    【讨论】:

    • 是的,这就是我目前正在做的事情。只是想知道它是否可以简化:(因为这样,一个简单的更改将需要大量的配置更改,我想避免这种情况:(
    • 在我看来是不可避免的,唉。不过,如果您希望轻松更改文件名,您可以尝试使用set $foo bar 将其设置为变量——也许set $errorpage error.php?e= 之类的东西效果最好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-08
    • 2013-12-30
    • 2020-04-29
    • 2017-01-19
    • 2020-08-31
    • 1970-01-01
    • 2011-03-12
    相关资源
    最近更新 更多