Hi,
I'm a Dreamhost hosting user and I am having routing problems too. I've
hacked Zend_Controller_Request_Http public function setRequestUri to resolve
my issue and have posted a question about it here
http://www.nabble.com/Zend_Controller_Request_Http-setRequestUri-bug--tf3953464s16154.html
My hack is to flip the 1st and 2nd elseif condition so that
$_SERVER['REDIRECT_URI'] is checked before $_SERVER['REDIRECT_URL'].
public function setRequestUri($requestUri = null)
{
if ($requestUri === null) {
if (isset($_SERVER['HTTP_X_REWRITE_URL'])) { // check this first
so IIS will catch
$requestUri = $_SERVER['HTTP_X_REWRITE_URL'];
==> } elseif (isset($_SERVER['REQUEST_URI'])) {
==> $requestUri = $_SERVER['REQUEST_URI'];
==> } elseif (isset($_SERVER['REDIRECT_URL'])) { // Check if using
mod_rewrite
==> $requestUri = $_SERVER['REDIRECT_URL'];
} elseif (isset($_SERVER['ORIG_PATH_INFO'])) { // IIS 5.0, PHP
as CGI
$requestUri = $_SERVER['ORIG_PATH_INFO'];
if (!empty($_SERVER['QUERY_STRING'])) {
$requestUri .= '?' . $_SERVER['QUERY_STRING'];
}
} else {
return $this;
}
} elseif (!is_string($requestUri)) {
return $this;
} else {
// Set GET items, if available
$_GET = array();
if (false !== ($pos = strpos($requestUri, '?'))) {
// Get key => value pairs and set $_GET
$query = substr($requestUri, $pos + 1);
parse_str($query, $vars);
$_GET = $vars;
}
}
$this->_requestUri = $requestUri;
return $this;
}
I'm not sure if this is the solution for your problem. But if you are stuck,
this maybe worth a try.
Jim
alesl wrote:
>
> Hi.
>
> When testing a Zend Framework application at Dreamhost hosting, I
> discovered a problem with the routing system in my particular
> configuration.
> At home everything works perfectly (tested on windows and linux -
> apache_mod), but routing does not work correctly in environmet with
> Apache, suexec and mod_rewrite (Dreamhost).
>
> This is my .htaccess
> RewriteEngine on
>
> RewriteBase /
>
> RewriteCond %{SCRIPT_FILENAME} !-f
> RewriteCond %{SCRIPT_FILENAME} !-d
> RewriteRule ^(.*)$ index.php/$1 [L]
>
> RewriteCond %{REQUEST_FILENAME} -f
> RewriteRule ^(.*\.)(js|css)$ index.php [L,NC]
>
> The second conditon rewrites js and css files to index.php where front
> controller takes action with defined route:
> routes.jscss.type =
> "Zend_Controller_Router_Route_Regex"
> routes.jscss.route = "(.+)\.(css|js)"
> routes.jscss.defaults.module = "jscss"
> routes.jscss.defaults.controller = "index"
> routes.jscss.defaults.action = "index"
> routes.jscss.map.1 = "file"
> routes.jscss.map.2 = "type"
>
> Ass i said on local machines js, css files are minimized and send back to
> browser. On Dreamhost nothing hapens -> routing is ignored ?!?!
>
> Any sugestions??
>
> Regards, AlesL
>
--
View this message in context:
http://www.nabble.com/Routing-does-not-work-correctly-tf3960104s16154.html#a11239120
Sent from the Zend Framework mailing list archive at Nabble.com.