在URL www.abc.com/ec/basket.php?product_id=1
上,$_GET
变量显示为空。
这是非常令人惊讶的,因为$_GET
确实在同一服务器上具有相同网址的不同域上显示了值。当然,代码是原始域的副本。
我不明白为什么会发生这样的事情。甚至代码的第一行都显示空白的$_GET
。
当我在页面的第一行执行print_r($_SERVER)
时,我得到了以下响应。前两个值令人惊讶。
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
变量在同一站点上的其他页面上也可以很好地工作。
我已经在这个问题上绞尽脑汁了好几个小时,但还是找不到解决方案。任何帮助都将受到高度的感谢。
发布于 2011-04-01 13:43:38
您应该只查看.htaccess
文件,并更精确地查找包含RewriteRule
的行。
发布于 2011-05-22 14:14:48
您的重写规则可能缺少查询字符串追加标志。
找到如下所示的行:
RewriteRule somestuff index.php [L]
将其替换为:
RewriteRule somestuff index.php [L,QSA]
发布于 2011-04-01 13:43:50
将其放入您的.htaccess文件中。那么这将会起作用。
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^/ec/basket.html?$ index.php%1
https://stackoverflow.com/questions/5514000
复制