Bug #55780 [Com]: $_SERVER['REQUEST_URI'] does not contain the request's complete URI

From: Date: Mon, 30 Dec 2013 01:30:07 +0000
Subject: Bug #55780 [Com]: $_SERVER['REQUEST_URI'] does not contain the request's complete URI
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-183489@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=55780&edit=1 ID: 55780 Comment by: chealer at gmail dot com Reported by: chealer at gmail dot com Summary: $_SERVER['REQUEST_URI'] does not contain the request's complete URI Status: Not a bug Type: Bug Package: *General Issues PHP Version: Irrelevant Block user comment: N Private report: N New Comment: Hi Rasmus, It depends on what you mean by "PHP". If you mean the interpreter itself, this is arguably not a bug. But as I wrote, this should probably be treated as a documentation bug, and just cause the $_SERVER documentation to fix the entry description, adding a warning about the name. Apache documentation gives the following descriptions for REQUEST_URI: Request_URI - the resource requested on the HTTP request line -- generally the portion of the URL following the scheme and host portion without the query string. See the RewriteCond directive of mod_rewrite for extra information on how to match your query string. The path part of the request's URI The path component of the requested URI, such as "/index.html". This notably excludes the query string which is available as as its own variable named QUERY_STRING. PHP itself gives the following: REQUEST_URI uri section following the domain:port part of a URI That being said, note that while $_SERVER is indeed based on environment variables, it is far from coming directly from the web server. Here are a few reference points: http://lxr.php.net/s?n=25&start=50&sort=relevancy&q=REQUEST_URI&project=PHP_5_5 http://lxr.php.net/xref/PHP_5_5/sapi/apache/mod_php5.c http://lxr.php.net/xref/PHP_5_5/main/php_variables.c http://lxr.php.net/xref/PHP_5_5/sapi/cgi/cgi_main.c Previous Comments: ------------------------------------------------------------------------ [2013-12-16 04:57:53] rasmus@php.net It is not a bug, at least not in PHP, because PHP has nothing to do with setting this. It comes directly from your web server. We simply populate the $_SERVER array with whatever your web server has put into the environment. ------------------------------------------------------------------------ [2013-12-15 18:23:13] chealer at gmail dot com Hi Michael, It is arguably not a bug per se that $_SERVER['REQUEST_URI'] does not contain the request's URI. One might argue the name is simply misleading. However, there is unarguably a bug as long as the documentation claims REQUEST_URI contains the URI. As I wrote: "At this point, it is probably a bad idea to simply fix. This should probably be treated as a documentation bug, and just cause the $_SERVER documentation to fix the entry description, adding a warning about the name." ------------------------------------------------------------------------ [2013-12-06 07:25:32] mike@php.net Thank you for taking the time to write to us, but this is not a bug. Please double-check the documentation available at http://www.php.net/manual/ and the instructions on how to report a bug at http://bugs.php.net/how-to-report.php ------------------------------------------------------------------------ [2011-09-25 18:08:40] chealer at gmail dot com Description: ------------ According to http://www.php.net/manual/en/reserved.variables.server.php the REQUEST_URI entry of $_SERVER contains "The URI which was given in order to access this page". This is not the case, as the example given just after shows: "for instance, '/index.html'". Actually, REQUEST_URI contains a URI reference. This bug exists since as far as I can remember. At this point, it is probably a bad idea to simply fix. This should probably be treated as a documentation bug, and just cause the $_SERVER documentation to fix the entry description, adding a warning about the name. However, having the actual request URI would be useful too, be it through a new "ACTUAL_REQUEST_URI" entry, a function, or something. Note: this bug is not completely PHP-specific. http://labs.apache.org/webarch/uri/rfc/rfc3986.html#hierarchical gives a historical perspective on URI/URL terminology. ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=55780&edit=1

« previous php.bugs (#183489) next »