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

时间:2011-12-07 23:17:36

标签: php post nginx http-status-code-405

我一直在谷歌上搜索,我发现只有当你发布到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

2 个答案:

答案 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
}