如何打印错误 405 方法不允许用户使用
Posted
技术标签:
【中文标题】如何打印错误 405 方法不允许用户使用【英文标题】:How to print Error 405 Method not allowed to users 【发布时间】:2014-07-06 04:46:10 【问题描述】:我正在编写 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();
但这不是专业的方式。我希望用户得到与上述链接完全相同的错误。
有什么想法吗?
感谢您的帮助:)
【问题讨论】:
你一定是在开玩笑,用information-retrieval
标记this ...(已删除)
请注意,根据 RFC 2616,405 响应“必须包含 Allow
标头,其中包含所请求资源的有效方法列表。”
【参考方案1】:
Apache 未设置为针对 PHP 设置状态代码处理错误文档。 在'custom-msg.php'中你可以添加你想显示的消息。
if ($_SERVER['REQUEST_METHOD'] == 'GET')
header("HTTP/1.0 405 Method Not Allowed");
include 'custom-msg.php';
exit();
【讨论】:
谢谢。他们做同样的工作吗? 您还必须包含带有 405 响应的Allow
标头(第 14.7 节):w3.org/Protocols/rfc2616/rfc2616-sec14.html
为什么不直接使用http_response_code(405)
而不是header("HTTP/1.0 405 Method Not Allowed")
?以上是关于如何打印错误 405 方法不允许用户使用的主要内容,如果未能解决你的问题,请参考以下文章
discord.errors.HTTPException:405 方法不允许(错误代码:0):405:方法不允许