我一直在谷歌上搜索,我发现只有当你发布到html文件时才会发生这个错误。在我的设置中,我有一个重写规则,它基本上隐藏了url中的index.php文件,而且我认为它与它有关的时间最长。 得到的工作正常,但由于某种原因,Get不适用于OpenID。
不允许的方法
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
答案 0 :(得分:1)
我刚刚解决了这个问题!
我安装了lighttpd,并且再次使用lighttpd也遇到了同样的错误。 我正在查看所有错误的地方,因为错误405是网络服务器错误。
但是,我刚刚开始使用一个名为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');
答案 1 :(得分:0)
我遇到了同样的错误。
我的问题是POST功能不接受第二个参数
function someForm($f3, $args){
//some Process
}