Bug #66191 [Com]: relative paths are not handled correctly
| From: | ibit dot zee at gmail dot com | Date: | Fri, 12 Sep 2014 15:11:13 +0000 |
| Subject: | Bug #66191 [Com]: relative paths are not handled correctly | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-187526@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=66191&edit=1
ID: 66191
Comment by: ibit dot zee at gmail dot com
Reported by: jakoch at web dot de
Summary: relative paths are not handled correctly
Status: Not a bug
Type: Bug
Package: Built-in web server
Operating System: Windows
PHP Version: 5.4.22
Block user comment: N
Private report: N
New Comment:
I can confirm this problem is real for relative links...
Same app tested with several other Server IIS5/IIS6/IIS7 and Apache works ok...
PHP internal server is trying to find the resource indicated by the relative path always in the
parent folder...
try also with './*' prefix, no prefix, only works with absolute path... and this is very
annoying... please fix (php 5.3x)
Previous Comments:
------------------------------------------------------------------------
[2014-09-10 14:11:58] magnusthorek at gmail dot com
I can confirm this too. There is even a post of mine in Stack Overflow
(http://stackoverflow.com/questions/25095425/php-built-in-webserver-and-relative-paths) detailing a
whole scenario mainly based in relative paths that does not work as expected.
And it's not only with this application I developed. phpMyAdmin also relies on relative paths
to load their CSS and JS and the "." is being resolved as one level above, right after the
port definition, instead of the current accessed by browser.
------------------------------------------------------------------------
[2014-04-05 00:03:00] steve at steveorevo dot com
I can confirm this. Doesn't happen with Apache or Nginx, but visiting a page without the
trailing slash causes subsequent links to fail.
------------------------------------------------------------------------
[2013-11-28 18:07:13] jakoch at web dot de
Demo: https://www.dropbox.com/s/go5ikn4kvryl6e1/php-server-bug.zip
http://localhost:90/application <-- not working
http://localhost:90/application/ <-- working
Anon, i think you might be right and an implicit redirect would solve this.
------------------------------------------------------------------------
[2013-11-28 16:31:58] anon at anon dot anon
When you browse '/application', the web browser has no way of knowing that
'application' is a directory. It looks like a file in '/'. Consequently, the
base URI is '/', so the browser requests resources relative to there. The correct path you
should be viewing from is '/application/'. Therefore, it's a web server's
responsibility, whenever a directory is requested without a trailing slash, to send a redirect so
that it does have a trailing slash. Apparently this vital redirect isn't being sent. I'm
not familiar with PHP's built-in web server so I can't say if this missing redirect is a
bug in the server or a configuration or user error.
------------------------------------------------------------------------
[2013-11-28 16:13:10] jakoch at web dot de
"Browsers interpret relative URLs relative to the current URL ..."
The current URL is "http://localhost:90/updater" not "http://localhost:90/".
On the screenshot you see, that i get a http code 200 for browsing into the subdir. Then <link
href="assets/css/bootstrap.css" rel="stylesheet"> should resolve to http://localhost:90/updater/assets/css/bootstrap.css,
but it's requested as http://localhost:90/assets/css/bootstrap.css
- logged as "/assets/css/bootstrap.css" - the file is at
/updater/assets/css/bootstrap.css.
Putting http://localhost:90/updater in front of the href
works, but thats not what i want to use, because the page is served with Nginx. And that works...
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
https://bugs.php.net/bug.php?id=66191
--
Edit this bug report at https://bugs.php.net/bug.php?id=66191&edit=1