
Cómo eliminar los IDs de las URLs en Joomla 3.7
27 abril, 2017 ◆ 3 comentariosHace apenas un par de días vio la luz la versión 3.7 de Joomla. Tal y como el equipo había adelantado, estaba programada una mejora para eliminar los ids de las URLs de forma nativa. Es una mejora que desde Kadum Desarrollo web nos parecía reseñable y así os lo hicimos saber en este artículo. Sin embargo, debido a que han encontrado inconvenientes si se activaba en algunas webs en producción, el equipo de Joomla ha preferido no incluirlo en esta versión y seguir trabajando en ello.
Si eres de los que estabas deseando actualizar tu versión de Joomla para poder quitar fácilmente los identificadores en las direcciones URL y te preguntas cómo hacerlo ahora, sigue leyendo, que te explicamos dos sencillas maneras de hacerlo.
Vamos explicar dos métodos para quitar estos ids:
Modificar el fichero router.php
Al igual que sucedía con anterioridad, hemos de modificar manualmente el fichero router.php. Para ello, hemos de acceder a:
/components/com_content/router.php
En las versiones anteriores de Joomla, se tenía que modificar:
$params->get('sef_advanced_link', 0);
Por:
$params->get('sef_advanced_link', 1);
Sin embargo, ahora las modificaciones en ese fichero son:
if ($params->get('sef_advanced', 0)); //line 48
Por
//if ($params->get('sef_advanced', 0)) $this->noIDs = true; $sef_advanced = true; if ($sef_advanced)
De esta forma, se consigue que URLs del tipo:
www.mi-pagina-web.es/andalucia/1-cordoba
Automáticamente, omitan el id en la url y pasen a:
www.mi-pagina-web.es/andalucia/cordoba
Modificar el fichero config.xml
Otra posibilidad sería modificar el fichero de configuración config.xml del componente. En este fichero se pueden establecer valores para los atributos del objeto params, de forma que se podría añadir la opción de establecer los valor para sef_ids y sef_advanced.
Se debe acceder al fichero:
administrator/components/com_content/config.xml
Y, dentro del <fieldset name=”integration”, añadir las líneas de código (en torno a la línea 1027):
<field name="sef_advanced" type="radio" class="btn-group btn-group-yesno" default="0" label="URL Routing" description="Modern Routing enables advanced features but may change your URLs. Legacy routing ensures full compatibility for existing sites. This is configured per component." filter="integer"> <option value="1">Modern</option> <option value="0">Legacy</option> </field> <field name="sef_ids" type="radio" class="btn-group btn-group-yesno" default="0" label="Remove IDs from URLs" description="Remove the IDs from the URLs of this component." showon="sef_advanced:1" filter="integer"> <option value="1">JYES</option> <option value="0">JNO</option> </field>
Tal y como se aprecia en la siguiente imagen:

Modificar config.xml
De esta forma, podremos acceder a las opciones de configuración del componente content:
- A través del botón Options dentro Content > Articles
- O bien, a través de System > Global Configuration > Articles
Y, en la pantalla similar a la siguiente imagen, seleccionar:
- El valor Modern para el campo URL Routing. Así se establece a 1 el valor para sef_advanced
- y el valor Sí para la opción, Remove IDs from URLs. Así se establece a 1 el valor para sef_ids

Quitar IDs de las URLs
Mientras el equipo de Joomla pone en marcha la mejora prevista que haga que la eliminación del Id sea de forma nativa, podéis escoger cualquiera de estos dos métodos para la versión 3.7.
Desde Kadum desarrollo web, ¡esperamos que este tips & tricks os sirva de ayuda!
Si te suscribes a nuestro Facebook o le echas un vistazo a nuestro Google plus o twitter, te mantendremos informado de nuestras novedades.
Me ha venido genial.
Hasta ahora con crear un único enlace a cada artículo funcionaban sin prefijo todos los botones de leer más, por ejemplo, pero me he topado con un Joomla recien actualizado que seguía añadiendo esos prefijos.
He hecho la segunda opción, ¿habrá que volver a modificar config.xml tras en cada actualización?
Muchas gracias!
Lástima que en el módulo “Artículos – Noticias de actualidad” los links ahora muestran “?view=article&id=:”
El primer método de editar router.php no me ha funcionado, no sé si será por el update 3.7.1
Hola, Eloy:
Gracias por tu comentarios.
Exacto, cada vez que se realiza una actualización de Joomla es necesario repetir alguna de las dos opciones.
En cada actualización, Joomla reescribe sus ficheros, incluyendo: router.php y config.xml. Por lo que, al actualizar a la nueva versión, Joomla 3.7.1, tienes que volver a modificar el config.xml (si optas por la segunda opción)
Hemos editado el artículo para hacer funcional la primera opción (Modificar el fichero router.php). De modo que el condicional que aparece en torno a la línea 48 de router.php
Se sustituye por:
Respecto al módulo “Artículos – Noticias de actualidad”, tras volver a modificar tu fichero router.php o config.xml, ¿has comprobado si tienes activadas las URL amigables dentro de Configuración del sitio > Configuración SEO?