NGINX设置error_page的小细节

server {
    listen      80;
    server_name www.domain.com;
    root        /inetpub/wwwroot/www_domain_com;
    access_log  /dev/null main;
    error_log   /dev/null;
 
    location ~ \.php$ {
        fastcgi_pass  unix:/program/php/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include       fastcgi_params;
    }
 
    # 允许使用error_page指令设置错误页
    fastcgi_intercept_errors on;
    proxy_intercept_errors   on;
 
    # 错误页设置
    error_page 403 /php/error_page.php?error=403;
    error_page 404 /php/error_page.php?error=404;
    error_page 500 /html/error_page/500.html;
    error_page 502 /html/error_page/502.html;
    error_page 503 /html/error_page/503.html;
    error_page 504 /html/error_page/504.html;
    # 说明①:error_page支持使用PHP页面,如上面的403、404错误就使用了error_page.php页面。
    # 说明②:50x错误通常是因为PHP-FPM出问题引起的,所以不能和40x错误一样使用error_page.php显示错误页面,只能用HTML页面。
    # 说明③:HTML页面无法传递参数,如/html/error_page/common.html?error=500,在common.html里获取的URL是地址栏的URL。
    # 说明④:这里的/php目录是相对于root的(/html目录也一样),也就是/inetpub/wwwroot/www_domain_com/php目录。
}

Copyright © 2024 码农人生. All Rights Reserved