Amigo,
Não sei se é a melhor solução, mas eu costumo brincar com urls amigáveis usando 
esse pedaço de código para controle de rotas.
   function rotas($class) {
      // index?      if ($this->uri['controller'] == "") {         
$this->loadController("home");      } else {
         // buscar?         if ($this->uri['controller'] == "buscar") {         
   $this->loadController("listagem", "buscar", $this->uri['method'], 
$this->uri['param']);         }
         // controller?         $d = dir($GLOBALS['blog_framework_controller']);
         while (false !== ($entry = $d->read())) {            if 
(strpos($entry, '.php')) {               $rotas[] = str_replace('.php', '', 
$entry);            }         }         if (in_array($this->uri['controller'], 
$rotas)) {            if ($this->uri['method']) {               
$this->loadController($this->uri['controller'], $this->uri['method'], 
$this->uri['param']);            } else {               
$this->loadController($this->uri['controller'], 'index');            }         }
         // nome de categoria?         $listagem_controller = 
$GLOBALS['blog_framework_controller'] . "listagem.php";         
require_once($listagem_controller);         $controller = new listagem();       
  $res = $controller->existeCategoria($this->uri['controller']);         if 
($res) {            $this->loadController("listagem", "categoria", 
$this->uri['controller'], $this->uri['method']);         }
         // nome-de-um-artigo?         $artigo_controller = 
$GLOBALS['blog_framework_controller'] . "artigo.php";         
require_once($artigo_controller);         $controller = new Artigo();         
$res = $controller->existeArtigo($this->uri['controller']);         if ($res) { 
           $this->loadController("artigo", "index", $this->uri['controller']);  
       }      }      // 404, nenhum controller não foi encontrado      
$this->loadController("erro_404");   }
Você pode mudar A ORDEM DOS CONDICIONAIS se quiser que o MVC procure primeiro 
isso, depois aquilo. Você tem total liberdade para fazer o que quiser, 
lembrando que eu já "fatiei" a url recebida e aloquei na ordem com os seguintes 
nomes: "www.exemplo.com/controller/método/parâmetro.  No entando, como você 
pôde ver, eu posso processar da forma e ordem que eu quiser, ou ainda eu posso 
pegar um pedaço e executar OUTRO controller.
Espero ter contribuído de alguma forma.
Att,
> From: [email protected]
> Date: Sat, 30 Apr 2011 21:23:17 -0300
> To: [email protected]
> Subject: [CodeIgniter] Problema com Rotas e Segments!
> 
> Pessoal, tudo bem?
> Então estou com um problema e queria compartilhar com vcs para ver se alguem 
> tem algum tipo de luz para me dar.
> 
> Então, tenho uma aplicação (www.quegostoso.com.br - Meu site) 
> Estou tento alguns problemas de rotas, q q ta rolando: 
> 
> Tenho atualmente uma cidade no sistema, ele é preparado para trabalhar com N 
> cidades, atraves de cookie 
> mas acho que seria muito interessante colocar a cidade na url, hj a página 
> inicial independente da cidade é: 
> 
> www.quegostoso.com.br/home 
> 
> Eu gostaria que isso fosse, 
> www.quegostoso.com.br/nome-da-cidade 
> 
> para mudar de cidade existe uma url que limpa e grava um cookie no usuário, 
> mas ai vai outro problema
> tenho um controllador chamado ofertas-recentes , queria que ficasse
> 
> www.quegostoso.com.br/nome-da-cidade/ofertas-recentes 
> 
> O Problema é que a aplicação tem todas os controllers trabalhando com 
> segments e nisso se eu colocar mais um /alguma-coisa 
> vou ter que mudar tudo, o que vem a ser um grande trabalho. 
> 
> Alguem tem algum tipo de ideia q desse pra me ajudar? 
> 
> Allan Torres 
> 
> 
> 
> _______________________________________________
> [email protected]
> http://www.codeigniter.com.br
> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
> 
> ---------------------------
> Oportunidade de negócio
> http://www.franquiasargohost.net
> ---------------------------
                                          
_______________________________________________
[email protected]
http://www.codeigniter.com.br
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br

---------------------------
Oportunidade de negócio
http://www.franquiasargohost.net
---------------------------

Responder a