在 Nginx 中处理不存在的 PHP 页面的优雅方法

在 Nginx 中处理不存在的 PHP 页面的优雅方法

处理 Nginx 中不存在的 PHP 页面的最佳方法是什么?我有以下位置块...

location ~ \.php$ {
    fastcgi_pass   localhost:9000;
    include        fastcgi_params;
}

如果 PHP 页面不存在,我希望能够显示 404 错误,我猜我需要获取try_fileshttp://wiki.nginx.org/HttpCoreModule#try_files) 指令涉及通过使用error_page指令(在其他地方声明)处理所有错误,但不确定执行此操作的最佳方法。

任何帮助,将不胜感激。

答案1

只需使用error_page(你可以将page_not_found.html更改为php脚本):

error_page 404 /page_not_found.html;
location ~ \.php$ {
    fastcgi_pass   localhost:9000;
    include        fastcgi_params;
    fastcgi_intercept_errors on;
}

如果找不到页面,则尝试文件需要重定向到不同的服务器。

相关内容