查询字符串变量存在,但$ _GET为空

时间:2012-10-03 18:04:14

标签: php

我在开发服务器上为客户开发了一个网站,并将其推送到生产服务器。在这两个网站上,网址类似于http://www.siteurl.com/blogs/?m=09&y=2012

在开发服务器上,如果我var_dump($_GET),我会得到我期望的值。

在生产服务器上,如果我var_dump($_GET),我会得到一个空数组。

如果它有帮助,我会发布phpinfo(),我甚至不知道哪些设置可能会导致此问题。

感谢。

2 个答案:

答案 0 :(得分:5)

我遇到了同样的问题。

请参阅此论坛讨论:http://forum.kohanaframework.org/discussion/734/_get-empty/p1

Solved replacing this:
RewriteRule .* index.php/$0 [PT,L]

for this:
RewriteRule .* index.php?$0 [PT,L]

将新规则添加到.htaccess。它会起作用

RewriteRule ^[A-Za-z]+$ index.php?$1 [QSA,L]

答案 1 :(得分:2)

正如我上面所说,你需要QSA标志(读“查询字符串追加”)将查询字符串传递给PHP:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /subdir/
    RewriteRule ^index\.php$ - [L,QSA]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /subdir/index.php [L,QSA]
</IfModule>