发布
社区首页 >问答首页 >尽管$_GET为空

尽管$_GET为空
EN

Stack Overflow用户
提问于 2011-04-01 21:23:31
回答 4查看 1.7K关注 0票数 1

在URL www.abc.com/ec/basket.php?product_id=1上,$_GET变量显示为空。

这是非常令人惊讶的,因为$_GET确实在同一服务器上具有相同网址的不同域上显示了值。当然,代码是原始域的副本。

我不明白为什么会发生这样的事情。甚至代码的第一行都显示空白的$_GET

当我在页面的第一行执行print_r($_SERVER)时,我得到了以下响应。前两个值令人惊讶。

代码语言:javascript
代码运行次数:0
复制
Array
(
    [REDIRECT_REDIRECT_REQUEST_METHOD] => GET
    [REDIRECT_REDIRECT_STATUS] => 404
    [REDIRECT_STATUS] => 404
    [HTTP_HOST] => www.abc.com
    [HTTP_CONNECTION] => keep-alive
    [HTTP_CACHE_CONTROL] => max-age=0
    [HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.27 (KHTML, like Gecko) Chrome/12.0.712.0 Safari/534.27
    [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    [HTTP_ACCEPT_ENCODING] => gzip,deflate,sdch
    [HTTP_ACCEPT_LANGUAGE] => en-GB,en-US;q=0.8,en;q=0.6
    [HTTP_ACCEPT_CHARSET] => ISO-8859-1,utf-8;q=0.7,*;q=0.3
    [HTTP_COOKIE] => [various values]
    [PATH] => /sbin:/usr/sbin:/bin:/usr/bin
    [SERVER_SIGNATURE] => Apache/2.2.3 (Red Hat) Server at www.abc.com Port 80


    [SERVER_SOFTWARE] => Apache/2.2.3 (Red Hat)
    [SERVER_NAME] => www.abc.com
    [SERVER_ADDR] => [IP address]
    [SERVER_PORT] => 80
    [REMOTE_ADDR] => [IP address]
    [DOCUMENT_ROOT] => /var/www/htdocs
    [SERVER_ADMIN] => webmaster@abc.com
    [SCRIPT_FILENAME] => /var/www/htdocs/index.php
    [REMOTE_PORT] => 39746
    [REDIRECT_URL] => /page-not-found.html
    [GATEWAY_INTERFACE] => CGI/1.1
    [SERVER_PROTOCOL] => HTTP/1.1
    [REQUEST_METHOD] => GET
    [QUERY_STRING] => 
    [REQUEST_URI] => /ec/basket.html?product_id=1
    [SCRIPT_NAME] => /index.php
    [PHP_SELF] => /index.php
    [PHP_AUTH_USER] => 
    [PHP_AUTH_PW] => 
    [REQUEST_TIME] => 1301662577
)

HTTP状态显示为404,但页面正常显示。只是我不能在$_GET变量中获得任何值。

此外,$_GET变量在同一站点上的其他页面上也可以很好地工作。

我已经在这个问题上绞尽脑汁了好几个小时,但还是找不到解决方案。任何帮助都将受到高度的感谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-04-01 21:43:38

您应该只查看.htaccess文件,并更精确地查找包含RewriteRule的行。

票数 1
EN

Stack Overflow用户

发布于 2011-05-22 22:14:48

您的重写规则可能缺少查询字符串追加标志。

找到如下所示的行:

代码语言:javascript
代码运行次数:0
复制
RewriteRule somestuff index.php [L]

将其替换为:

代码语言:javascript
代码运行次数:0
复制
RewriteRule somestuff index.php [L,QSA]
票数 1
EN

Stack Overflow用户

发布于 2011-04-01 21:43:50

将其放入您的.htaccess文件中。那么这将会起作用。

代码语言:javascript
代码运行次数:0
复制
Options +FollowSymLinks

RewriteEngine on
RewriteCond %{QUERY_STRING}                     ^(.*)$
RewriteRule ^/ec/basket.html?$                  index.php%1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5514000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档