Pathauto
Genera automáticamente alias de URL para contenido basándose en patrones de tokens configurables, eliminando la necesidad de crear alias manualmente.
pathauto
Install
composer require 'drupal/pathauto:8.x-1.14'
composer require 'drupal/pathauto:8.x-1.13'
composer require 'drupal/pathauto:8.x-1.10'
Overview
Pathauto es un módulo que genera automáticamente alias de URL para varios tipos de contenido (nodes, taxonomy terms, users) sin requerir especificación manual de rutas. Esto permite URLs amigables para motores de búsqueda como /category/my-article-title en lugar de /node/123.
El módulo utiliza un sistema de patrones basado en tokens que los administradores pueden configurar. Los patrones pueden crearse por entity type, por bundle, e incluso por idioma para sitios multilingües. El módulo maneja automáticamente la unicidad de alias añadiendo sufijos numéricos cuando ocurren conflictos.
Pathauto se integra perfectamente con el sistema de rutas de Drupal y puede configurarse para mantener los alias existentes intactos, crear nuevos alias junto con los antiguos, o reemplazar los alias antiguos cuando se actualiza el contenido. También proporciona capacidades de generación y eliminación masiva para gestionar alias en grandes cantidades de contenido.
Features
- Generación automática de alias de URL basada en patrones de tokens configurables para nodes, taxonomy terms, users y otras content entities
- Creación de alias basada en patrones soportando patrones específicos por entity type, bundle e idioma con prioridad ponderada
- Sistema de reemplazo de tokens permitiendo componentes dinámicos de alias como [node:title], [term:vocabulary], [user:name]
- Unicidad automática de alias que añade sufijos numéricos (-0, -1, etc.) cuando ocurren conflictos de alias
- Comportamiento de actualización configurable: no hacer nada, crear nuevo alias manteniendo el antiguo, o reemplazar el alias antiguo
- Generación masiva de alias de URL para contenido existente que carece de alias
- Eliminación masiva de alias con opciones para preservar alias creados manualmente
- Soporte de transliteración para convertir caracteres acentuados a equivalentes ASCII
- Manejo configurable de puntuación (eliminar, reemplazar con separador, o mantener)
- Función de palabras ignoradas para eliminar palabras comunes de los alias (a, an, the, etc.)
- Configuración de longitud máxima de alias y componentes para prevenir URLs excesivamente largas
- Configuración de tokens seguros para prevenir la limpieza de ciertos tipos de tokens como URLs y rutas
- Integración con el módulo Redirect para crear redirecciones cuando cambian los alias
- Comandos Drush para generación y eliminación de alias mediante línea de comandos
- Casilla de verificación pathauto por entidad permitiendo anulación manual de la generación automática de alias
Use Cases
URLs de contenido amigables para SEO
Crea URLs legibles para el contenido basadas en títulos. Configura un patrón como [node:title] para artículos para obtener URLs como /my-article-title en lugar de /node/123. Esto mejora el SEO al incluir palabras clave en las URLs y hace que los enlaces sean más compartibles y memorables.
URLs jerárquicas de taxonomía
Genera URLs que reflejan la jerarquía de taxonomía usando patrones como [term:vocabulary]/[term:parents:join-path]/[term:name]. Esto crea URLs como /categories/electronics/smartphones para términos profundamente anidados.
Patrones específicos por tipo de contenido
Configura diferentes patrones de URL por tipo de contenido. Las publicaciones de blog podrían usar blog/[node:created:custom:Y/m]/[node:title] para URLs basadas en fechas, mientras que las páginas de productos usan products/[node:field_category]/[node:title] para URLs basadas en categorías.
Gestión de URLs en sitios multilingües
Crea patrones específicos por idioma que generan alias apropiados para cada versión de idioma del contenido. Configura patrones por idioma para usar prefijos localizados o tokens traducidos.
URLs de perfiles de usuario
Habilita Pathauto para usuarios para generar URLs de perfil limpias. Usa patrones como users/[user:name] o team/[user:field_department]/[user:name] para páginas de perfil organizadas y memorables.
Migración masiva de URLs
Al migrar desde otro CMS o reestructurar URLs, usa la función de generación masiva para regenerar todos los alias de una vez. Combinado con el módulo Redirect, las URLs antiguas se preservan como redirecciones.
Limpiar alias heredados
Usa la función de eliminación masiva para eliminar alias antiguos generados automáticamente mientras preservas los creados manualmente, luego regenera con nuevos patrones para una estructura de URL renovada.
Tips
- Siempre instala el módulo Redirect junto con Pathauto para crear automáticamente redirecciones cuando los alias cambien, preservando el valor SEO y previniendo errores 404.
- Usa el navegador de Token (el enlace aparece al editar patrones) para descubrir los tokens disponibles para tus tipos de entidad y sus campos.
- Configura los pesos de los patrones estratégicamente: los patrones más específicos (bundle + idioma) deben tener pesos más bajos (mayor prioridad) que los patrones generales.
- Prueba los patrones en contenido existente antes de habilitarlos para nuevo contenido usando la función de actualización masiva con 'Generar solo para rutas sin alias'.
- Agrega palabras comunes a 'Cadenas a eliminar' para mantener los alias concisos (artículos como 'a', 'the' están incluidos por defecto).
- Para URLs basadas en fechas, usa formatos de token como [node:created:custom:Y/m/d] para obtener rutas como /2024/03/15/article-title.
- La configuración de 'Tokens seguros' previene la limpieza de tokens con formato de URL. Agrega nombres de tokens personalizados si tienes tokens que generan componentes de ruta preformateados.
- Usa los comandos de Drush (pag, pad) para operaciones de alias a gran escala en sitios de producción, ya que son más eficientes que la interfaz para procesamiento por lotes.
- Revisa y prueba la configuración de puntuación cuidadosamente - diferentes sitios pueden necesitar diferente manejo de caracteres como puntos o guiones bajos.
Technical Details
Admin Pages 5
/admin/config/search/path/patterns
Gestionar patrones de alias de URL. Esta página lista todos los patrones de Pathauto configurados con su tipo, cadena de patrón y estado habilitado. Los patrones se pueden reordenar por peso para controlar la prioridad (los patrones con pesos más bajos se evalúan primero).
/admin/config/search/path/patterns/add
Crear un nuevo patrón de alias de URL. Define el tipo de Entity, el patrón de tokens, condiciones opcionales de bundle e idioma, y la etiqueta administrativa.
/admin/config/search/path/settings
Configura los ajustes globales de Pathauto incluyendo el carácter separador, longitud máxima del alias, manejo de mayúsculas/minúsculas, transliteración, palabras a ignorar, comportamiento de actualización y manejo de puntuación.
/admin/config/search/path/update_bulk
Generar alias de URL de forma masiva para contenido existente. Selecciona tipos de Entity y elige si generar solo para rutas sin alias, actualizar alias existentes, o regenerar todos los alias.
/admin/config/search/path/delete_bulk
Eliminar alias de URL de forma masiva. Elige eliminar todos los alias o alias para tipos de Entity específicos. Opción para preservar alias creados manualmente.
Permissions 4
Hooks 5
hook_pathauto_pattern_alter
Altera el patrón a utilizar antes de que se genere un alias. Permite la modificación del patrón según el contexto, como el tipo de entidad, bundle, operación e idioma.
hook_pathauto_alias_alter
Altera el alias generado antes de guardarlo. Permite la modificación de la cadena de alias final y valores de contexto como el idioma.
hook_pathauto_is_alias_reserved
Determina si un posible alias de URL entra en conflicto con rutas reservadas existentes. Devuelve TRUE para evitar que se utilice el alias.
hook_pathauto_punctuation_chars_alter
Altera la lista de caracteres de puntuación que Pathauto puede manejar durante la generación de alias.
hook_path_alias_types_alter
Altera las definiciones de plugins de tipos de alias. Permite la modificación de cómo se manejan los diferentes tipos de entidad para la generación de alias.
Drush Commands 2
drush pathauto:aliases-generate
Generar o regenerar alias de URL en lote
drush pathauto:aliases-delete
Eliminar alias de URL en lote
Troubleshooting 7
Solo las URLs pasadas a través de las APIs de URL y Link de Drupal son reemplazadas. Los enlaces codificados directamente en plantillas como href="/node/123" no serán reemplazados. Usa la función url() de Drupal o plantillas de enlaces en su lugar.
Asegúrate de que exista un patrón para ese tipo de contenido en /admin/config/search/path/patterns. Si el patrón predeterminado está en blanco y no existe un patrón específico para el bundle, no se generarán alias. Verifica que el patrón esté habilitado.
Esto sucede cuando múltiples elementos tendrían el mismo alias. Haz los patrones más únicos incluyendo tokens adicionales como [node:nid] o [node:created:custom:Y-m-d] para diferenciar títulos similares.
Revisa la configuración de Puntuación en /admin/config/search/path/settings. Asegúrate de que el carácter problemático esté configurado como 'Eliminar' o 'Reemplazar por separador'. Habilita la transliteración si los caracteres acentuados son el problema.
Revisa la configuración de 'Acción de actualización'. Si está configurada como 'No hacer nada', los alias existentes se preservan. Cámbiala a 'Crear un nuevo alias. Eliminar el alias antiguo.' para actualizaciones automáticas.
Si el contenido ya tiene alias y 'Acción de actualización' está configurada como 'No hacer nada', la generación masiva omitirá esos elementos. Selecciona 'Regenerar alias de URL para todas las rutas' en la generación masiva, o cambia primero la configuración de Acción de actualización.
Ajusta las configuraciones de 'Longitud máxima del alias' y 'Longitud máxima del componente'. El valor predeterminado es 100 caracteres. Asegúrate de que los tokens individuales no excedan la longitud del componente, lo cual causa truncamiento en los límites de palabras.
Security Notes 3
- El permiso 'Administer pathauto' es poderoso y solo debe otorgarse a administradores de confianza, ya que patrones incorrectos podrían exponer rutas internas o crear estructuras de URL confusas.
- Las operaciones de eliminación masiva son irreversibles y no tienen diálogo de confirmación. Siempre haz una copia de seguridad de la tabla path_alias antes de realizar eliminaciones masivas.
- Ten cuidado con los patrones que incluyen tokens de contenido generado por usuarios, ya que usuarios malintencionados podrían potencialmente influir en las estructuras de URL si la entrada no está correctamente saneada por el proveedor del token.