Nginx:php 中出现意外的 404 页面

Nginx:php 中出现意外的 404 页面

这是我的 NGINX 配置文件

location / {
index index.html index.htm index.php;
try_files $uri $uri/ /profile.php?nno=$uri&$args;
}

因此,当服务器上不存在文件时,Nginx 服务器http://example.com/requested_file_name

Php 脚本个人资料.php检查请求的文件名如果用户名存在,则在数据库中显示用户个人资料。如果不存在:

if($count != 1) {
header("HTTP/1.0 404 Not Found");
include_once 'header.php';
?>
<div id="error">Profile not found</div>
<?php
include_once 'footer.php';
die;
}

多年来它一直运行良好。我刚刚获得了一个使用 Nginx 1.10.1 版本的新服务器,但出现了问题。

当数据库中不存在用户名时,Nginx 显示默认的 404 页面,而不是

<div id="error">Profile not found</div>

当我删除行时

header("HTTP/1.0 404 Not Found");

一切正常。那么,如何强制 NGINX 不显示默认的 404 页面而是显示脚本输出?

location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    fastcgi_intercept_errors on;
    fastcgi_ignore_client_abort off;
    fastcgi_connect_timeout 60;
    fastcgi_send_timeout 180;
    fastcgi_read_timeout 180;
    fastcgi_buffers 4 256k;
    fastcgi_buffer_size 128k;
    fastcgi_busy_buffers_size 256k;
    fastcgi_temp_file_write_size 256k;
   }

相关内容