2011-12-07 53 views
0

我一直在使用Google,所有我能找到的是,當您發佈到html文件時可能會發生此錯誤。在我的設置中,我有一個重寫規則,它基本上隱藏了url中的index.php文件,而且我最長時間以爲它與此有關。 獲取工作正常,但由於某種原因,無法使用OpenID。方法不允許(405)即使發佈到NGINX上的php文件

不允許的方法

POST請求是不允許的URL /post.php

這裏是我的設置:

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是一個網絡服務器錯誤。

然而,我剛開始使用一種稱爲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'); 
0

我得到了同樣的錯誤。

我的問題是,POST功能不接受第二個參數

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