![在 Nginx 中处理不存在的 PHP 页面的优雅方法](https://linux22.com/image/541170/%E5%9C%A8%20Nginx%20%E4%B8%AD%E5%A4%84%E7%90%86%E4%B8%8D%E5%AD%98%E5%9C%A8%E7%9A%84%20PHP%20%E9%A1%B5%E9%9D%A2%E7%9A%84%E4%BC%98%E9%9B%85%E6%96%B9%E6%B3%95.png)
处理 Nginx 中不存在的 PHP 页面的最佳方法是什么?我有以下位置块...
location ~ \.php$ {
fastcgi_pass localhost:9000;
include fastcgi_params;
}
如果 PHP 页面不存在,我希望能够显示 404 错误,我猜我需要获取try_files
(http://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;
}
如果找不到页面,则尝试文件需要重定向到不同的服务器。