我正在尝试构建一个简单的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()
。
有人看到我做错了吗?