2013-09-27 44 views
1

這裏出現了一個非常奇怪的問題。當發送請求到我的PHP腳本時通過服務器將GET請求視爲GET

$_SERVER['REQUEST_METHOD'] 

返回「GET」而不是「POST」。

它正常工作,每隔REST方法

所以這是我得到

GET -> GET 
POST-> GET 
PUT -> PUT 
DELETE -> DELETE 

它只所以我假設它發生在我的一臺服務器是Apache的一個問題,我已經設法弄清楚,只有當我的網址添加「www」時纔會發生。

www.something.com

導致

我已經在不同的地點進行測試在同一臺服務器上的問題,但

something.com和我得到同樣的東西,所以我假設它是全局配置。

任何想法

+0

hmm ..如果表單的動作是什麼子域?他們可能與當前頁面有不同的子域名。我不確定這是否是一個問題,但值得一試。 – thedjaney

+0

theyre不是子域名,我試過的每個網站都有它自己的主域名。還是)感謝你的建議。 –

+0

嘗試比較phpinfo()輸出 – thedjaney

回答

3

作爲HTTP spec說爲響應代碼301和302:

注意:由於歷史的原因,用戶代理可以請求方法 從POST改變要獲取後續請求。如果這種行爲是 不想要的,307(臨時重定向)狀態代碼可用於代替

第三(但不太可能)可能性你得到一個303響應初始URI。解決方案有兩個:

  • 配置您的控制下的客戶端,將其發佈到規範化的URI,以使它們根本不被重定向。
  • 配置您的服務器重定向使用307在這種情況下,而不是301/302。
+1

對,你把我放在正確的軌道上,現在我已經修好了。問題是我沒有www.something.com作爲服務器別名我只有東西。所以這是轉發,而不是將其視爲合法地址。然後你的轉發問題就開始了。謝謝! –