Avisos
Vaciar todo

eliminar el id categoria de la url en Virtuemart  

 
José Luis Suárez Jiménez
 José Luis Suárez Jiménez
Estimable Member

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

Sea esta: http://www.copitecnic.com/index.php/suministro-material-oficina/archivo-y-clasificación/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

Citar
Respondido : 17/10/2014 3:37 am
José Luis Suárez Jiménez
 José Luis Suárez Jiménez
Estimable Member

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í.

ResponderCitar
Respondido : 17/10/2014 5:13 am

Gestor de Contraseñas - VPN Conexión Segura - Gestor 2FA (Segundo Factor de Autenticación

Pablo Velasco
 Pablo Velasco
Illustrious Member

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.

ResponderCitar
Respondido : 17/10/2014 12:32 pm
José Luis Suárez Jiménez
 José Luis Suárez Jiménez
Estimable Member

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

ResponderCitar
Respondido : 17/10/2014 1:26 pm

Cursos Gratuitos WordPress

Pablo Velasco
 Pablo Velasco
Illustrious Member

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.

ResponderCitar
Respondido : 17/10/2014 3:19 pm
José Luis Suárez Jiménez
 José Luis Suárez Jiménez
Estimable Member

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.

ResponderCitar
Respondido : 17/10/2014 5:16 pm