1
我有一個很奇怪的祕密。我有一個相當簡單的Apache重寫,由於一些奇怪的原因,它搞亂了我的PHP Superglobals。第一關重寫如下:Apache重寫突破PHP SuperGlobals
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase/
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
當這條規則是唯一的超級全局是$ _GET和$ _REQUEST(當然$要求做,因爲這讓他們從$ _GET,...)。無論我在網址中輸入什麼,我都會收到/ index_php作爲唯一的密鑰,並且它沒有任何價值。起初,我以爲我已經在我的代碼亂七八糟的東西了,但作爲索引文件的第一行我試過如下:
foreach($_GET as $key => $value)
{
echo "$key = $value<br/>";
}
foreach($_POST as $key => $value)
{
echo "$key = $value<br/>";
}
foreach($_REQUEST as $key => $value)
{
echo "$key = $value<br/>";
}
打印的唯一的事情就是「/ index_php =」兩次。我之前搞過一些重寫,但很明顯我做的不正確。作爲一個方面說明,這是我預期的行爲:
URL: localhost/users/dashboard?item=id
這將使我的$ _GET超全局與關鍵:項目,值:ID。任何幫助是極大的讚賞。
現在不工作,我現在得到以下內容: – ars265
沒關係,它確實,對不起,必須重新啓動Apache – ars265
@ ars265好聽! – jeroen