如何向用户打印"405方法不允许"的错误信息。

5
我正在编写iOS UDID检索脚本,但遗憾的是卡在了一个小问题上。正如您所知,要检索iOS UDID,用户必须在iOS设备上安装配置文件。之后,设备会响应配置文件中定义的链接。如果用户直接打开检索链接,将会收到错误405 Method not allowed的提示,就像以下链接一样:http://get.udid.io/retrieve/http://license.if0rce.com/connect/retrieve
/retrieve/index.php中的代码如下:
<?php
$data = file_get_contents('php://input');
file_put_contents("data.txt", $data);
?>

我可以通过添加以下内容来设置自定义错误:

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    header("HTTP/1.0 405 Method Not Allowed");
exit(); }

但这不是专业的方法。我希望用户能够得到与上述链接完全相同的错误。

有什么想法吗?

感谢您的帮助 :)


1
你一定是在开玩笑,用information-retrieval标记这个……(已删除) - CBroe
2
请注意,根据RFC 2616的规定,405响应“必须包含一个'Allow'头,其中包含所请求资源的有效方法列表。” - lafor
1个回答

9

Apache没有设置为PHP设置状态码的错误文档。您可以在“custom-msg.php”中添加要显示的消息。

if ($_SERVER['REQUEST_METHOD'] == 'GET') {
header("HTTP/1.0 405 Method Not Allowed"); 
include 'custom-msg.php';
exit(); }

谢谢。他们做了相同的工作吗? - PersianHero
3
您必须在405响应中包含一个Allow头部(第14.7节): https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html - tvanc
1
为什么不直接使用 http_response_code(405) 而不是 header("HTTP/1.0 405 Method Not Allowed") - Jenna Sloan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接