Hola.
Necesitamos eliminar en la url la id de la categoría.
Por ejemplo que esta dirección: http://www.copitecnic.com/index.php/suministro-material-oficina/archivo-y-clasificación/620-archivador-az
Antes funcionaba bien, pero ahora, no sabemos porque, muestra en las URL el id
URL del sitio: Contenido solo visible a usuarios registrados
Os adjunto el archivo router.php de la carpeta components/com_virtuemart/
No lo hemos tocado, pero creemos que el error puede venir de ahí.
Hola,
Parece que estás utilizando Joomla 1.5 y Virtuemart 1.1 en tu web. De ser así, lo primero que tienes que tener en cuenta es que, por defecto, esta versión de Virtuemart no viene originalmente preparada para trabajar con urls amigables, es decir, el archivo router.php es un añadido no oficial.
Con el archivo router.php que solía usar para generar las direcciones amigables las url no tienen una estructura como la que comentas, sino algo así:
www.nombredelapaginaweb.com/tienda/category/2/portatiles
En este ejemplo anterior el 2 sería el id de la categoría portátiles.
Si no has realizado cambios en el archivo router.php, actualizaciones en Joomla o Virtuemart, o has agregado algún componente de SEO tipo sh404SEF no te tendrían que haber cambiado las urls.
Aplicar cambios en el archivo router.php puede ser muy complejo ya que puede generar errores inesperados en las urls, de forma que algunos enlaces de Virtuemart dejen de funcionar.
Es bastante extraño, ya que algunas categorías siguen funcionando bien. Por ejemplo estas:
http://www.copitecnic.com/index.php/suministro-material-oficina/comunicar-y-planificar
http://www.copitecnic.com/index.php/suministro-material-oficina/agendas-y-recambios
Pero otras en cambio añade el id de la categoría antes del nombre.
Seguiremos investigando para solucionar el problema, ya que nos influye negativamente en el SEO y tenemos más de 13000 paginas indexadas :S
Hola,
Revisando un poco el archivo router.php que habías adjuntado veo que la url amigable se crea a partir del alias de la categoría, cuando por defecto las categorías de Virtuemart 1.1 no tienen un alias.
De hecho veo que se utiliza una tabla de nombre #_vm_category_alias (cambiando # por el prefijo de tus tablas) que no existe por defecto en Virtuemart. Es decir, da la sensación de que se han agregado nuevos datos con este archivo router.php.
Tendrías que revisar estos alias de las categorías para ver si algunas de ellas tienen precisamente el id de la categoría delante, ya que esto podría ser la causa del problema. Lo que ignoro es dónde se configurar estos alias ya que, como te decía, esto no viene por defecto con Virtuemart.
Hola Pablo.
Gracias por la información. Hemos podido encontrar el foco del problema, y es que como dices, en esa tabla se guardan los alias, que por defecto se almacena con el nombre de la categoría. En caso de encontrar duplicidad de alias, lo que hace es añadirle delante el id de la categoría para que no exista conflicto (por eso en algunas categorías aparece el id y en otras no).
Tema solucionado. Ahora sólo queda corregir los alias que están duplicados en la base de datos y asignarle el correcto.
Un saludo y gracias por todo.