Php
為什麼 PHP $_REQUEST 數組為空?
我在 Ubuntu Hardy 上安裝了 nginx,並立即意識到 PHP 腳本正在獲取空請求數組,即無論是 GET 還是 POST 都沒有通過,甚至 $_REQUEST 數組也是空的。
當我切換回 Apache 時,一切都很好。
安裝nginx版本為0.6.35-0ubuntu1.1~hardy1,PHP為PHP版本5.2.4-2ubuntu5.10。
有什麼問題?
檢查此設置是否在您的 fastcgi 模組的“位置”部分中
fastcgi_param QUERY_STRING $query_string;
try_files command
nginx的一個特性query_string
是它不會自動傳遞給重寫的文件,而是必須顯式傳遞。因為這個_$SERVER['QUERY_STRING']
總是空的,所以變數$_REQUEST
和$_GET
也沒有設置。與重寫不同,如果回退不是命名位置,則不會自動保留 $args。如果您需要保留 args,則必須明確地這樣做:
try_files $uri $uri/ /index.php?q=$uri&$args;
或僅使用論點
try_files $uri $uri/ /index.php?$args;
如果您想保證獲得原始參數,則使用
$query_string
which 與它相同,$args
但它$query_string
是只讀的。