SEO – Eliminar el ID de las URL´s de los articulos en Joomla

No hace mucho, redacte un tutorial para eliminar el ID de las URL´s de los articulos en joomla 1.5, realizando un parche sobre joomla, lo que era un inconveniente para las actualizaciones que podian sobreescribir los archivos donde se realiza la acción de parchear al actualizar nuestra version joomla!. En esta ocasion vamos a ver como eliminar el ID de las urls de los articulos de Joomla 2.5, pero sin tener que actuar sobre los archivos del core de joomla!, si no empleando la tecnica Templates Overrides, que nos permitira actualizar nuestro joomla 2.5 sin temor a que se sobreescriban los archivos modificados…

No va a ser complicado, no se necesita instalar ninguna extension joomla, sera suficiente con cambiar dos números y comentar un párrafo. Recordar siempre hacer una copia del archivo en el que se está trabajando, si haces algo mal o te equivocas, siempre puedes volver sobre tus pasos poniendo de nuevo los archivos originales copiados.

Primero vamos a copiar el archivo router.php dentro de la carpeta /html de nuestra plantilla para realizar la acción de templates overrides, para no tener que cambiar nada del core de joomla y copiamos el archivo router.php situado en /components/com_content/router.php‘ a /TU PLANTILLA/html/.

El siguiente paso sera cambiar los numeros mencionados (Lnea 27 y 208):

$advanced    = $params->get('sef_advanced_link', 0); 

Cambiar por la siguiemnte

$advanced    = $params->get('sef_advanced_link', 1); 

En el siguiente paso vamos a comentar el parafo entre la linea 228-233:

if (strpos($segments[0], ':') === false) {
 $vars['view'] = 'article';
 $vars['id'] = (int)$segments[0];
 return $vars;
}

Si no saben como comentar, simplente remplazar con el siguiente parrafo:

/*if (strpos($segments[0], ':') === false) {
$vars['view'] = 'article';
$vars['id'] = (int)$segments[0];
return $vars;
 }*/

Como ultimo paso remplazaremos el ultimo numero en la linea 208 (en la funcion ContentParseRoute($segments)):

$advanced = $params->get('sef_advanced_link', 0);

por

$advanced = $params->get('sef_advanced_link', 1);

Observar que lo unico que cambia es el 0 por un 1

{xtypo_rounded1}Si disponen de una carpeta /com_content en su plantilla, dentro de la carpeta /html es posible que no funcione del todo bien, por lo que deberan optar por realizar los cambios directamente desde /components/com_content/router.php . En cuyo caso tenerlo en cuenta en proximas actualizaciones.{/xtypo_rounded1}

Para Joomla 3.0 solo es cuestion de editar el archivo router.php situado en components/com_content y cambiar el 0 por un 1 en la linea 210, como muestro a continuación.

$advanced = $params->get('sef_advanced_link', 0);

por

$advanced = $params->get('sef_advanced_link', 1);

Este tipo de ayuda a modo de ajustes sobre joomla, ayuda en gran medida a librerar de un peso considerable, nuestra base de datos.

Espero que les sirva de ayuda para que sus urls amigables sean óptimas para un SEO correcto. Y si quieren profundizar sobre el tema, tienen  a su disposición este documento sobre SEF en Joomla Docs

DEMO desde el router.php de /components/com_content en la web de Octavi de urbaweb, a la que se le realizo la migración e instalación de una plantilla Responsive Web design > URBAWEB

 

Comments

  1. redlo

    Redireccionar
    [b]RECORDAR[/b] que deden redireccionar sus urls desde el administrador con el componente de la raiz de joomla 2.5 [b]Redirect[/b] /componentes / redirect o en español Redireccionar.

    [url=http://www.solojoomla.com/redireccionar-error-404-en-joomla.html]Como redireccionar las URLs una vez mejoradas[/url]

  2. alorque

    Eliminar ID de los articulos… Funciona !
    Me funciono desde /components/com_content . Probe con lo de template overide y si, tengo una carpeta com_content y efectivamente no me funciono, pero GENIAL la solución.
    Ahora a redireccionar 🙂

  3. alex99

    Templates overrides funciona en J! 2.5.4
    He probado en un joomla 2.5 y la tecnica que comentas funciona. Eso si, lo he probado en un joomla 2.5.4.

  4. lucas41

    Fantastico
    Habia buscado en internet y encontre varios tutoriales parecidos, pero ninguno tan claro. Te explicas como un libro abierto sin dejar detalle. 😉
    Gracias.

  5. disart

    Eliminar ID de los articulos
    Yo necesito hacer lo mismo pero en el K2, como lo hago?
    Gracias!!!!

Deja un comentario