【问题标题】:How can a QUERY_STRING be empty while REQUEST_URI has parameters?当 REQUEST_URI 有参数时,QUERY_STRING 怎么可能是空的?
【发布时间】:2014-03-09 21:18:50
【问题描述】:

在我的本地机器上,一切正常,但在肝脏服务器上,我无法读取查询字符串

echo $_SERVER['REQUEST_URI']; == /purchase?id=2
echo $_SERVER['QUERY_STRING']; == EMPTY

怎么会这样?

这是 htaccess 文件内容:

<IfModule mod_rewrite.c>
    Options -MultiViews
    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

【问题讨论】:

  • 检查你是否有 .htaccess 进行重写,如果有,你需要使用 $_SERVER['REDIRECT_QUERY_STRING']
  • 在本地机器上它与 QUERY_STRING 的结果相同,但在实时服务器上它给出:未定义的索引错误
  • 你的 php 版本是多少。请检查 phpinfo() 函数并与我们分享。
  • 转储整个 $_SERVER 数组以获得更大的视图:die("
    ".print_r($_SERVER, true)."
    ");
  • @DalımÇepiç 这是 PHP 版本 5.3.10-1ubuntu3.8

标签: php apache digital-ocean


【解决方案1】:

PHP $_SERVER 数组填充了来自 Web 服务器环境的信息,并且数组键可能因服务器而异。

See $_SERVER in the PHP online manual.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-26
    • 1970-01-01
    • 2013-02-13
    • 2012-02-09
    • 1970-01-01
    相关资源
    最近更新 更多