Obtener URLs para usuarios en Codeigniter
Codeigniter tiene una método para tratar con las URLs: http://dominio/controlador/metodo/param1/param2/… El problema viene cuando nuestra aplicación necesita URLs diferentes, como las de Twitter u otra red social, que son del tipo http://dominio/username.
Para ello primero se debe cambiar el archivo routes.php de la configuración:
//Excluir estos controladores cuando se generan las URLs
$route['(login|oauth|site|search)(.*)'] = '$1$2';
//Las URLs de los usuarios
$route['[a-zA-Z0-9]+/(add|edit)'] = 'users/$1';
$route['[a-zA-Z0-9]+'] = 'users/profile';
Después habrá que modificar el .htaccess para usar APP_PATH:
RewriteEngine On
RewriteBase /
RewriteCond %{ENV:REDIRECT_APP_PATH} !^$
RewriteRule ^(.*)$ - [E=APP_PATH:%{ENV:REDIRECT_APP_PATH}]
RewriteCond %{ENV:APP_PATH} ^$
RewriteRule ^(.*)$ - [E=APP_PATH:/$1]
RewriteCond $1 !^(index\.php|img|css|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L]
Y por último modificar el config.php para indicar que debe usar el APP_PATH:
$config['uri_protocol'] = "APP_PATH";
$config['enable_query_strings'] = TRUE;
Vía / PHPDeveloper.org
Gracias!! justo lo que estaba buscando, siempre me lio con el htaccess.. Lo probaré en mi nuevo proyecto en codeigniter.
Hola Jonay, yo me hice un lÃo enorme haciendo un controlador complicadÃsimo cuando se hace mucho más sencillo asÃ
Con RoR esto seria muchisimo mas simple de hacer. Buen articulo!