Les platico, tuve que hacer esto en mi archivo routes.php debido a que por recomendaciones SEO en unos ejemplos que leí de canonical URL.
Sé que es un parámetro entretenido que puede resultarnos útil para subir el ranking de la página, incrementar los resultados orgánicos y
mejorar todas esas cosas que generan monedas.
La cosa es que un cuate de aquí de la oficina estaba implantando el botón tipo “like” de facebook pero provisto por el mismísimo google.
En la documentación del botoncito, el compa encontró que ese botón tiende a buscar-usar el canonical url para asociar la página a la que se le dio LIKE.
La intención de modificar el archivo routes.php de codeigniter es precisamente para que tanto los usuarios como los crawlers puedan encontrar con el canonicalurl
una respuesta bonita (en este caso, la sección de la marca que está buscándose).
Por ejemplo, si un usuario escribía www.intruder.mx/sangoma, el router class de CI le indicaba que al no aparecer como un archivo dentro de la carpeta (y subcarpetas)
de controladores no existía y devolvía un error 404. La modificación es ésta y está pensada para que a las rutas (arreglo $routes)
del CI se le añadan las cosas que necesitamos dirigir a un controlador específico.
// conectándome a la base de datos
// DATABASE_HOST, DATABASE_USER, DATABASE_PASS son constantes definidas en mi archivo constants.php
$db_shop = mysql_connect(DATABASE_HOST, DATABASE_USER, DATABASE_PASS);
//Cheando que 'aiga' conexión.
if (! $db_shop)
{
show_error(503, "routes.php: No se pudo conectar a la base de datos: ".mysql_error(), 'error_db');
log_message('error', "routes.php: No se pudo conectar a la base de datos: ".mysql_error());
}
//Seleccionando la BD que se usa.
mysql_select_db('base_de_datos');
$getInformacion = "SELECT * FROM tabla WHERE campo_condicion = 1;"; // checando las marcas activas
$fuenteDatos = mysql_query($getInformacion); // consultándolo en la base
//Si se fue a la merga la conexión, pues a la merga el usuario
if (!$fuenteDatos)
{
show_error(503, 'routes.php: Consulta no válida: ' . mysql_error() . "La consulta es:
{$getInformacion}
", 'error_db');
mysql_free_result($fuenteDatos);
}
else{ // Si hay conexión y todo está chingón, vamos a iterar la respuesta de la base.
$route = array();
// iterando el recordset
while($datos = mysql_fetch_assoc($fuenteDatos))
{
// Solo si no tienes esa ruta para la marca entras, sino... bríncate
if ( ! array_key_exists("{$datos['id_o_texto']}/(:any)" , $route) )
{
$route["{$datos['id_o_texto']}"] = "controlador/metodo/{$datos['id_o_texto']}/";
}
}
mysql_free_result($fuenteDatos);
}
//cerrando la conexión con la bd porque luego hay weyes que no hacen esto y su estúpido mysql se ataranta hermoso
mysql_close($db_shop);
// a la chingada las basuras
unset($db_shop);
unset($getInformacion);
unset($fuenteDatos);
unset($marcas);
// ¿cómo queda el routes? :
ob_start();
print_r($route);
$dump = ob_get_contents();
ob_clean();
log_message('debug', "routes.php array.route {$dump}");






