方法不允许(405),即使在NGINX上发布到php文件时也是如此

方法不允许(405),即使在NGINX上发布到php文件时也是如此,php,post,nginx,http-status-code-405,Php,Post,Nginx,Http Status Code 405,我一直在谷歌上搜索,我所能发现的是,当你发布到一个html文件时,这个错误可能会发生。在我的设置中,我有一个重写规则,它基本上对url隐藏index.php文件,我一直认为这与此有关。 Get可以正常工作,但由于某些原因Get不能与OpenID一起工作 不允许使用方法 URL/POST.php不允许POST请求 以下是我的设置: Debian squeeze / AMD64 nginx version: nginx/1.1.8 PHP 5.3.3-7+squeeze3 with Suhosi

我一直在谷歌上搜索,我所能发现的是,当你发布到一个html文件时,这个错误可能会发生。在我的设置中,我有一个重写规则,它基本上对url隐藏index.php文件,我一直认为这与此有关。 Get可以正常工作,但由于某些原因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

我自己解决了这个问题

我安装了lighttpd,并且在使用lighttpd时再次出现同样的错误。 我看错了所有地方,因为405错误是Web服务器错误

但是,我刚刚开始使用一个名为fatfree F3的新php框架,当您使用GET like so时,该框架会生成错误:

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');  

我也犯了同样的错误

我的问题是POST函数不接受第二个参数

function someForm($f3, $args){
    //some Process
}