-- Aleš Lončar <[EMAIL PROTECTED]> wrote
(on Thursday, 21 June 2007, 09:36 PM +0200):
>     I'm not sure if this is the solution for your problem. But if you are 
> stuck,
>     this maybe worth a try.
> 
> 
> It worked!! Thanks!

While it may have worked, would one of you (Jim or Ales) be willing to
provide me the information I requested, so I can find a general solution
that will work for you as well as those using apache's 404 handling for
routing?

Again, I'd like to know:

  * The value of $_SERVER['REDIRECT_URL']
  * The value of $_SERVER['REQUEST_URI']
  * Actual requested URI from the browser

Hopefully then I will have enough information to make
Zend_Controller_Request_Http work properly for you *and* those using
other facilities.

Thanks!

> Jim Scherer wrote:
> 
>     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
> 
> 
> 
> 
> 
> 
> 

-- 
Matthew Weier O'Phinney
PHP Developer            | [EMAIL PROTECTED]
Zend - The PHP Company   | http://www.zend.com/

Reply via email to