Bug #66191 [Com]: relative paths are not handled correctly

From: 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

« previous php.bugs (#187526) next »