Re: Apache odd behavior

From: Date: Mon, 16 Feb 2009 09:30:22 +0000
Subject: Re: Apache odd behavior
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-288307@lists.php.net to get a copy of this message
2009/2/16 Paul M Foster <paulf@quillandmouse.com>: > I'm submitting a url like this: > > http://mysite.com/index.php/alfa/bravo/charlie/delta > > The index.php calls has code to decode the url segments > (alfa/bravo/charlie/delta). It determines that the controller is alfa, > the method is bravo, and converts charlie and delta to $_GET['charlie'] > = 'delta'. It verifies that the controller and method exist, and calls > the controller and method. > > This works fine. The right controller gets called and the right method, > and the GET parameter looks like it should. The method sets some > variables and then calls a render() function to render the page, which > is in the doc root of the site. > > The page does get rendered, but without the stylesheet, and none of the > graphics show up. Why? Because, according to the logs, Apache appears to > be looking for the images and everything else in the directory > index.php/alfa/bravo/charlie/delta, which of course doesn't exist. > > No, I don't have an .htaccess file with RewriteEngine on. Apache figures > out that index.php is the file to look for in the original URL, but > can't figure out that everything else is relative to that file, not the > entire URL. > > This method is in use in at least one other MVC framework. What am I > doing wrong? You need to specify the absolute URL for all assets when using a URL scheme like this because the browser has no idea that index.php indicates the current directory so it resolves relative paths using the full URL. -Stuart -- http://stut.net/

« previous php.general (#288307) next »