我在开发服务器上为客户开发了一个网站,并将其推送到生产服务器。在这两个网站上,网址类似于http://www.siteurl.com/blogs/?m=09&y=2012
在开发服务器上,如果我var_dump($_GET)
,我会得到我期望的值。
在生产服务器上,如果我var_dump($_GET)
,我会得到一个空数组。
如果它有帮助,我会发布phpinfo()
,我甚至不知道哪些设置可能会导致此问题。
感谢。
答案 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>