nginx / php-fpm:更改状态代码将无法按预期工作

时间:2012-06-09 19:04:02

标签: nginx status php

我正在尝试构建一个简单的pastebin应用程序,它直接通过POST接收内容,因此我可以使用cURL(带有'-F'参数)通过终端上传文件。由于Lighttpd(1.4)生成“417 - Expectation Failed”错误并且不允许我使用cURL,我正在尝试使用PHP-FPM在nginx上进行设置。为了避免使用重写规则,我只是将每个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,因为它在开始时已更改。但我仍然收到404状态代码。唯一一次正确更改它的时候是我尝试在301来电之前将其设置为redirect_user_to_other_page()

有人看到我做错了吗?

0 个答案:

没有答案