2010-05-06 16 views
5

Estoy intentando redirigir todas las rutas a un controlador principal. Aquí está mi routes.phpEnrutamiento de URI de CodeIgniter (dinámico, multilingüe)

$route['default_controller'] = "main"; 
$route['scaffolding_trigger'] = ""; 

//$route['(\w{2})/(.*)'] = '$2'; 
//$route['(\w{2})'] = $route['default_controller']; 

$route['(en|ge)/(:any)'] = $route['default_controller']."/index/$1"; 
$route['(:any)'] = $route['default_controller']."/index/$1"; 

necesito Identificación del idioma que se pasa con todos los eslabones (como: http://site.com/en/hello-world)

aquí es mi controlador principal:

class Main extends Controller 
{ 
    function __construct() 
    { 
     parent::Controller();  
    } 

    function index($page_type=false, $param=false) 
    { 
     die($page_type.' | '.$param.'| Aaa!'); 
    } 
} 

Quiero comprobar si el tipo de archivo predefinido existe (como: http://site.com/en/archive/05-06-2010 - aquí el tipo predefinido sería archivo) y luego hacer algo. Si no, busque en la base de datos para slug. Si no se encuentra, vaya a 404.

El problema es que no puedo obtener los parámetros de la función de índice ($ page_type, $ param). Gracias por la ayuda.

Respuesta

2

Si puede ver que el enrutamiento funciona correctamente, intente utilizar $this->uri->segment(n) en su lugar? Donde n es el número del segmento que está recibiendo del URI, es decir, http://site.com/1/2/3/4/ ...

He visto problemas al utilizar los parámetros implícitos de métodos como los que está utilizando.

Para obtener más información, consulte la Guía del Usuario de CodeIgniter - la clase URI aquí:

http://codeigniter.com/user_guide/libraries/uri.html

mejor de la suerte.