Bug #55780 [Com]: $_SERVER['REQUEST_URI'] does not contain the request's complete URI
| From: | chealer at gmail dot com | 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