nginx/php fpm:更改状态代码赢得';I don’我没有按预期工作

nginx/php fpm:更改状态代码赢得';I don’我没有按预期工作,nginx,status,php,Nginx,Status,Php,我正在尝试构建一个简单的pastebin应用程序,它通过POST直接接收内容,因此我可以使用cURL(带有“-F”参数)通过终端上传一个文件。由于Lighttpd(1.4)正在生成“417-Expectation Failed”错误,并且不允许我使用cURL,所以我尝试在nginx上使用PHP-FPM设置它。为了避免使用重写规则,我只是将每个404错误重定向到'index.php'来处理它们。但我无法正确设置状态代码,也不明白为什么。下面是一些PHP/伪代码,介绍了我要做的事情: header(

我正在尝试构建一个简单的pastebin应用程序,它通过POST直接接收内容,因此我可以使用cURL(带有“-F”参数)通过终端上传一个文件。由于Lighttpd(1.4)正在生成“417-Expectation Failed”错误,并且不允许我使用cURL,所以我尝试在nginx上使用PHP-FPM设置它。为了避免使用重写规则,我只是将每个404错误重定向到'index.php'来处理它们。但我无法正确设置状态代码,也不明白为什么。下面是一些PHP/伪代码,介绍了我要做的事情:

header('Status: 200 OK'); // Change it to 200, as the request could came via a 404 error.
if (there_is_not_a_parameter_in_the_url()) {
    if (file_is_in_POST()) save_file();
    else {
        header('Status: 301 Moved Permanently');
        redirect_user_to_other_page(); // It's not possible to post a file from web, only directly by sending a POST request
    }
}
else {
    if (entry_does_not_exists()) {
        header('Status: 404 Not Found');
        show_404_page();
    }
    else show_entry();
}
调用
show_entry()
函数时,状态代码应为
200
,因为它在Beginning中已更改。但我还是得到了一个404状态码。唯一正确更改它的时间是我尝试将其设置为
301
,然后在
将用户重定向到\u其他页面()
调用之前


有人看到我做错了什么?

您是否检查了错误是否来自php而不是nginx