php查询字符串服务器变量从未填充


php query string server variable never populated

我有一个相当奇怪的问题。我创建了一个简单的php脚本,该脚本使用GET方法生成一个表单,并且只有一个框供任何人在其中键入任何内容。然后,在下面列出了服务器环境变量。

当我点击提交按钮时,我应该看到QS=Q=x,其中x是我键入的文本,print_r的第一个数组应该包含等于x的索引Q。

问题是,无论我键入什么,$_SERVER['QUERY_STRING']都不会被填充,print_r($_GET);总是输出一个空数组。

为什么会发生这种情况,我该如何解决?

<?php
echo "<!DOCTYPE HTML><html><head><title>Test</title></head><body>";
echo "<form action='"".$_SERVER['PHP_SELF']."'" method='"GET'">";
echo "<input type='"text'" name='"Q'"><input type='"submit'">";
echo "</form>";
echo "<h1>QS=".$_SERVER['QUERY_STRING']."</h1>";
echo "<pre>";
print_r($_GET);
print_r($_SERVER);
echo "</pre>";
echo "</body></html>";
exit();
?>

永不终止。。。我找到了答案

我在.htaccess文件中有以下内容,它修剪了请求中的所有查询字符串。

RewriteCond %{QUERY_STRING} !^$
RewriteRule ^(.*)$ /$1? [R=301,L]

我现在把它移走了,一切都正常。