这是我的 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;
}