Domain

El conjunto de módulos Domain te permite compartir usuarios, contenido y configuración entre un grupo de dominios desde una única instalación y base de datos.

domain
11,435 sites
115
drupal.org

Overview

El conjunto de módulos Domain proporciona una solución integral de gestión multidominio para Drupal. Permite a los administradores registrar múltiples dominios dentro de una única instalación de Drupal, compartir contenido y usuarios entre dominios, y proporcionar configuraciones y controles de acceso específicos por dominio.

El módulo admite características como acceso a contenido basado en dominio, anulaciones de configuración específicas por dominio, alias de dominio con patrones comodín, gestión de URL canónicas para SEO y soporte de inicio de sesión entre dominios. Los registros de dominio se almacenan como entidades de configuración, lo que los hace exportables como parte de la configuración de tu sitio.

El conjunto incluye varios submódulos: Domain (funcionalidad principal), Domain Access (control de acceso al contenido), Domain Alias (mapeo de nombres de host), Domain Config (configuración por dominio), Domain Config UI (interfaz de administración para configuración), Domain Content (resumen de contenido por dominio) y Domain Source (gestión de URL canónicas).

Features

  • Registrar múltiples dominios dentro de una única instalación de Drupal con nombres de host y nombres de máquina únicos
  • Sistema de negociación de dominios que determina el dominio activo basándose en las solicitudes HTTP
  • Soporte para esquemas de URL http, https o variable por dominio
  • Inicio de sesión de usuarios entre dominios mediante configuración de cookies compartidas
  • Control de acceso a contenido basado en dominio con permisos configurables por tipo de contenido
  • Alias de dominio con soporte de patrones comodín (por ejemplo, *.example.com) y opciones de redirección
  • Anulaciones de configuración por dominio para cualquier configuración de Drupal, incluyendo el nombre del sitio y ajustes
  • Anulaciones de configuración de dominio con reconocimiento de idioma
  • Gestión de URL canónicas (Domain Source) para generación consistente de enlaces entre dominios
  • Mapeo de entornos de dominio para flujo de trabajo de desarrollo (local, desarrollo, staging, pruebas)
  • Soporte de tokens para valores específicos de dominio
  • Clases CSS personalizadas por dominio añadidas a la etiqueta body
  • Integración con Views con controles de acceso y filtros basados en dominio
  • Comandos Drush para operaciones de gestión de dominios
  • Plugins de Block para navegación de dominios, cambio entre dominios y visualización de información del servidor
  • Plugin de condición para visibilidad de bloques basada en dominio

Use Cases

Sitio web multimarca

Gestiona múltiples sitios web de marcas desde una sola instalación de Drupal. Cada marca obtiene su propio dominio (marca1.com, marca2.com) con nombres de sitio, temas (a través del módulo contribuido Domain Theme Switch) y configuraciones de visibilidad de contenido separados, mientras comparten la misma base de usuarios e interfaz administrativa.

Despliegue multirregión

Ejecuta sitios web específicos por región (us.example.com, eu.example.com) desde una sola base de código. Usa Domain Config para personalizar el nombre del sitio, información de contacto y configuraciones regionales por dominio. Usa Domain Access para controlar qué contenido aparece en cada sitio regional.

Flujo de trabajo de desarrollo

Usa Domain Alias para mapear entornos de desarrollo (example.local, example.dev.cloudhost.com, example.staging.cloudhost.com) a sus contrapartes de producción. Configura los entornos para que los enlaces se reescriban correctamente para cada etapa del desarrollo sin modificar los registros de dominio.

Micrositios

Crea micrositios para campañas, eventos o lanzamientos de productos que comparten la gestión de contenido del sitio principal pero aparecen como dominios separados. Usa Domain Access para asignar contenido específico a los micrositios mientras mantienes todo gestionable desde un administrador central.

Intranet y sitio público

Ejecuta tanto un sitio web público como una intranet privada desde la misma instalación. Usa los permisos de Domain Access para controlar qué tipos de contenido y nodos aparecen en cada dominio, con roles de usuario y permisos separados por dominio.

SEO y URLs canónicas

Usa Domain Source para asegurar que el contenido que aparece en múltiples dominios siempre tenga URLs canónicas consistentes. Esto previene problemas de contenido duplicado y consolida los rankings de motores de búsqueda en tu dominio preferido.

Redes de franquicias o distribuidores

Gestiona una red de sitios web de franquicias o distribuidores donde cada ubicación tiene su propio dominio. Comparte contenido común (catálogo de productos, políticas) entre todos los sitios mientras permites personalización y contenido específico por ubicación.

Tips

  • Los registros de dominio son entidades de configuración, por lo que se exportan con la configuración de tu sitio y pueden gestionarse en control de versiones.
  • Siempre añade url.site a required_cache_contexts cuando uses Domain Config para asegurar una segmentación de caché adecuada.
  • Usa alias basados en entorno para flujos de trabajo de desarrollo para evitar modificar registros de dominio de producción durante el desarrollo.
  • El bloque de cambio de dominio es útil durante el desarrollo pero debería restringirse en producción solo a usuarios administradores.
  • Al eliminar dominios, se te pedirá que reasignes el contenido - planifica tu estrategia de migración de contenido antes de la eliminación.
  • Usa drush domain:generate para configurar rápidamente dominios de prueba durante el desarrollo.
  • Domain Source reescribe enlaces pero no emite redirecciones. Si necesitas redirecciones, configúralas en Domain Alias o usa un módulo de redirección separado.
  • Para sitios multidominio grandes, considera usar concesiones de acceso a nodos por bundle (característica experimental en Domain Access) para mejor rendimiento.
  • El soporte de Token en clases CSS permite clases dinámicas como domain-[domain:machine-name] para hooks de tematización específicos por dominio.

Technical Details

Admin Pages 11
Dominios /admin/config/domain

Ver y gestionar todos los registros de dominio registrados. Lista los dominios con su nombre de host, nombre, esquema, estado e indicador de dominio predeterminado. Proporciona acciones en línea para habilitar, deshabilitar o establecer dominios predeterminados. El dominio activo actual se muestra en negrita.

Añadir registro de dominio /admin/config/domain/add

Crear un nuevo registro de dominio con nombre de host, nombre, esquema de URL y configuración de estado.

Configuración de dominio /admin/config/domain/settings

Configurar ajustes globales para el módulo Domain, incluyendo soporte de caracteres, manejo del prefijo www, clases CSS y rutas accesibles para dominios inactivos.

Configuración de Domain Access /admin/config/domain/domain_access

Configurar cómo se muestran los campos de Domain Access y controlar el comportamiento de acceso a nodos.

Alias de dominio /admin/config/domain/alias/{domain}

Gestionar alias para un dominio específico. Los alias definen dominios únicos o patrones que se asignan a registros de dominio existentes, con soporte para comodines y opciones de redirección.

Añadir alias de dominio /admin/config/domain/alias/{domain}/add

Crear un nuevo alias para un dominio con configuración de patrón, redirección y entorno.

Formularios de configuración de dominio /admin/config/domain/config-ui

Configurar qué formularios de configuración pueden tener anulaciones específicas de dominio y cuáles deben excluirse.

Configuración guardada /admin/config/domain/config-ui/list

Ver todas las anulaciones de configuración específicas de dominio guardadas con opciones para inspeccionar, habilitar/deshabilitar o eliminarlas.

Configuración de Domain Source /admin/config/domain/domain_source

Configurar qué rutas y paths deben excluirse de las reescrituras de enlaces de Domain Source.

Contenido afiliado /admin/content/domain-content

Revisar contenido por dominio asignado. Proporciona páginas de resumen de contenido basadas en Views filtradas por asignación de dominio.

Editores afiliados /admin/content/domain-editors

Revisar usuarios por dominio asignado. Proporciona páginas de resumen de usuarios basadas en Views filtradas por asignaciones de editores de dominio.

Permissions 31
Administrar todos los registros de dominio

Ver, crear, editar y eliminar registros de dominio. Permite todos los permisos del módulo. Acceso restringido.

Acceder a dominios inactivos

Acceder a las URLs de dominios marcados como inactivos. Acceso restringido.

Asignar administradores adicionales a los dominios asignados

Permite asignar administradores a los dominios a los que el usuario tiene acceso. Acceso restringido.

Crear registros de dominio

Permite crear nuevos registros de dominio. Acceso restringido.

Editar registros de dominio asignados

Editar registros de dominio asignados al usuario. Acceso restringido.

Eliminar registros de dominio asignados

Eliminar registros de dominio asignados al usuario. Acceso restringido.

Acceder al bloque de navegación de dominios

Permite ver el bloque de navegación de dominios.

Acceder al bloque de cambio de dominio

Permite ver el bloque de cambio de dominio. Acceso restringido.

Ver dominios asignados en la lista de administración

Ver solo los dominios asignados al usuario en las listas de administración.

Ver todos los dominios registrados en la lista de administración

Ver todos los dominios registrados independientemente de la asignación.

Ver información de depuración para el manejo de dominios

Ver el bloque de información detallada del servidor de dominios. Acceso restringido.

Ver entidades de dominio publicadas

Permite a los usuarios ver entidades de dominio individuales cuando es necesario para su renderizado, sin otorgar acceso a la lista completa.

Administrar todos los alias de dominio

Acceso completo de administración a todos los alias de dominio. Acceso restringido.

Crear alias de dominio para dominios asignados

Crear alias para los dominios asignados al usuario. Acceso restringido.

Editar alias de dominio para dominios asignados

Editar alias para los dominios asignados al usuario. Acceso restringido.

Eliminar alias de dominio para dominios asignados

Eliminar alias para los dominios asignados al usuario. Acceso restringido.

Ver alias para dominios asignados

Ver alias para los dominios asignados al usuario.

Asignar editores adicionales a los dominios asignados

Permite asignar editores de contenido a los dominios. Acceso restringido.

Asignar editores adicionales a cualquier dominio

Permite asignar editores a cualquier dominio. Acceso restringido.

Publicar en cualquier dominio

Permite publicar contenido en cualquier dominio.

Publicar contenido en cualquier dominio asignado

Permite publicar contenido en los dominios asignados al usuario.

Crear cualquier contenido en los dominios asignados

Crear cualquier tipo de contenido en los dominios asignados.

Editar cualquier contenido en los dominios asignados

Editar cualquier contenido en los dominios asignados.

Eliminar cualquier contenido en los dominios asignados

Eliminar cualquier contenido en los dominios asignados.

Ver contenido no publicado en los dominios asignados

Ver contenido no publicado en los dominios asignados. Acceso restringido.

Administrar la configuración de la interfaz de Domain Config

Permite a los administradores determinar qué formularios están disponibles para la configuración específica de dominio. Acceso restringido.

Establecer la configuración predeterminada para todos los sitios

Permite a los administradores de dominio establecer el valor predeterminado para una configuración. Acceso restringido.

Traducir configuraciones específicas de dominio

Permite a los administradores de dominio usar formularios de configuración específicos del idioma. Acceso restringido.

Gestionar configuraciones específicas de dominio

Permite a los administradores de dominio usar formularios de configuración específicos de los dominios que gestionan. Acceso restringido.

Acceder a las páginas de contenido del dominio

Acceder a las páginas de resumen de contenido afiliado.

Acceder a las páginas de editores del dominio

Acceder a las páginas de resumen de editores afiliados.

Hooks 4
hook_domain_request_alter

Permite a los módulos modificar el domain activo durante la negociación de la solicitud.

hook_domain_validate_alter

Permite a los módulos modificar o añadir errores de validación para los hostnames de domain.

hook_domain_references_alter

Permite a los módulos modificar las opciones de referencia de domain disponibles en los campos de referencia de entity.

hook_domain_source_exclude_routes_options_alter

Permite a los módulos modificar la lista de rutas que pueden excluirse de las reescrituras de enlaces de Domain Source.

Drush Commands 17
drush domain:list

Lista los dominios activos del sitio.

drush domain:add

Añade un nuevo dominio al sitio.

drush domain:delete

Elimina un dominio del sitio.

drush domain:default

Establece el dominio predeterminado.

drush domain:disable

Desactiva un dominio.

drush domain:enable

Activa un dominio.

drush domain:name

Cambia la etiqueta de un dominio.

drush domain:scheme

Cambia el esquema de URL de un dominio.

drush domain:test

Prueba los dominios para verificar la respuesta HTTP correcta.

drush domain:info

Lista información general sobre los dominios del sitio.

drush domain:replace

Reemplaza cadenas en los nombres de host de dominios.

drush domain:generate

Genera dominios para pruebas.

drush domain-alias:list

Lista todos los alias de dominio.

drush domain-alias:add

Añade un nuevo alias de dominio.

drush domain-alias:delete

Elimina un alias de dominio.

drush domain-alias:delete-bulk

Elimina múltiples alias.

drush domain-alias:update

Actualiza un alias de dominio.

Troubleshooting 8
El inicio de sesión entre dominios no funciona

Establece el valor cookie_domain en sites/default/services.yml para que coincida con el nombre de host raíz de tus sitios (por ejemplo, cookie_domain: '.example.com'). Esto requiere que todos los dominios compartan un dominio padre común.

Los cambios de configuración no aparecen en los dominios

Añade url.site a required_cache_contexts en services.yml. Limpia las cachés después de hacer el cambio. Asegúrate de que cualquier anulación de configuración siga el patrón de nombres correcto: domain.config.DOMAIN_ID.config_name

Errores de AJAX al usar campos de referencia de entidad entre dominios

Habilita CORS en services.yml estableciendo cors.config.enabled a true. Configura allowedOrigins para incluir tus dominios o usa ['*'] para todos los orígenes.

Las redirecciones de dominio no funcionan

Asegúrate de que todos los dominios y alias estén añadidos a trusted_host_patterns en settings.php. Domain rechazará redirigir a hosts que no estén en la lista de confianza.

El contenido no aparece en los dominios esperados

Verifica los valores del campo Domain Access en el contenido. Si usas Domain Access, reconstruye los permisos de acceso a nodos en /admin/reports/status/rebuild después de los cambios de configuración.

No se puede crear el dominio - la validación del nombre de host falla

Asegúrate de que la casilla Test server response esté desmarcada si el DNS del dominio aún no está configurado. Alternativamente, asegúrate de que tu servidor pueda alcanzar el nombre de host del dominio vía HTTP.

Los alias de dominio no coinciden

Verifica el orden de clasificación de los alias. Los patrones más específicos deben tener pesos más bajos. La coincidencia con comodines sigue un orden de precedencia específico documentado en el README de Domain Alias.

Las Views no filtran por dominio correctamente

Asegúrate de que el manejador de acceso de Views correcto esté configurado (domain, domain_access_content o domain_access_editor). Añade filtros contextuales o argumentos apropiados para los campos de dominio.

Security Notes 7
  • Todos los permisos marcados como 'restrict access' se consideran sensibles y solo deberían otorgarse a roles de confianza.
  • Habilitar CORS para AJAX entre dominios tiene implicaciones de seguridad - revisa la documentación antes de habilitarlo.
  • El permiso 'access inactive domains' permite eludir las restricciones de visibilidad de dominio - otórgalo solo a administradores.
  • Las anulaciones de configuración de dominio pueden cambiar configuraciones sensibles de seguridad - restringe el permiso 'use domain config ui' apropiadamente.
  • El inicio de sesión entre dominios comparte cookies de sesión entre dominios - asegúrate de que todos los dominios estén bajo tu control antes de habilitarlo.
  • Siempre configura trusted_host_patterns en settings.php para prevenir ataques de redirección a dominios maliciosos.
  • El permiso 'administer domains' otorga control total sobre toda la funcionalidad de dominio - equivalente a acceso de administrador del sitio para operaciones de dominio.