2012-10-03 60 views
4

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

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

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

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

谢谢。

+0

请检查您的网站;我收到一个404错误。 – Sablefoste

+4

这不是真正的URL,只是我正在做的一个例子。我宁愿不发布实际的网址。 – LOLapalooza

+0

好吧,我以为我会在那里看到你的代码。无论如何,您正在使用和'&',而不是'&',这可能会影响解释。 – Sablefoste

回答

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] 
+0

我完全没有,但类似的东西。我的htaccess技能不是很好。我应该在这里改变什么? ' RewriteEngine叙述在 RewriteBase /子目录/ 重写规则^索引\ .PHP $! - [L] 的RewriteCond%{REQUEST_FILENAME} -f 的RewriteCond%{REQUEST_FILENAME} -D- 重写规则。 /subdir/index.php [L] ' – LOLapalooza

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> 
相关问题