我一直在谷歌搜索,我所能找到的只是当您发布到 html 文件时可能会发生此错误。在我的设置中,我有一个重写规则,基本上隐藏了 URL 中的 index.php,我很长时间以来都认为它与此有关。Get 工作正常。
方法不允许
URL /post.php 不允许 POST 请求
这是我的设置:
Debian squeeze / AMD64
nginx version: nginx/1.1.8
PHP 5.3.3-7+squeeze3 with Suhosin-Patch (cli) (built: Jun 28 2011 08:24:40)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
with Suhosin v0.9.32.1, Copyright (c) 2007-2010, by SektionEins GmbH
答案1
我刚刚自己解决了这个问题!
我安装了 lighttpd,使用 lighttpd 时也出现了同样的错误。我查看了所有错误的地方,因为错误 405 是 Web 服务器错误。
但是,我刚刚开始使用一个名为 fatfree F3 的新 php 框架,当您像这样使用 GET 时,该框架会生成错误:
F3::route('GET /autho/idreply', 'auth.php');
GET 意味着框架只期望 GET 变量并会拒绝 POST 变量。
出现服务器错误 405!
因此,将其更改为以下内容即可达到目的:
F3::route('POST /auth/oidreply', 'auth.php');
您甚至可以让框架使用此命令接受两者或其中之一;
F3::route('GET|POST /auth/oidreply', 'auth.php');