Redirección canónica en hosts virtuales masivos dinámicos en Apache

Redirección canónica en hosts virtuales masivos dinámicos en Apache

Tengo una aplicación web en Apache que permite a los usuarios apuntar su dominio al servidor.

En este momento estoy usando los hosts virtuales masivos dinámicos de Apache con una entrada VirtualDocumentRoot /www/hosts/%0/docs

Entonces con www.companydomain.com apunta a /www/hosts/www.companydomain.com/docs

El problema es que cuando el usuario accede a companydomain.com, apuntará a /www/hosts/companydomain.com/docs.

¿Existe una manera fácil de hacer que Apache verifique automáticamente si existe un directorio para el host virtual y, si no, busque el nombre del host con "www"? ¿en frente de eso? Otros subdominios están bien (es decir, abc.domain.com debería apuntar a un directorio diferente al de def.domain.com), pero todo el tema "www" es un misterio para mí.

Estoy usando hosts virtuales masivos dinámicos para que el servidor no tenga que reiniciarse después de cada registro de la aplicación. Si hay una forma diferente, está bien, siempre y cuando Apache no se reinicie cada vez.

¿Cómo puedo lograr esto? En el peor de los casos, si hubiera una forma de redirigir a una ubicación "predeterminada" en el servidor si no se encuentra, siempre podría hacer una verificación a través de PHP o algo así, pero siento que eso está un poco pirateado y tiene que haber una solución más eficiente. forma.

¡Gracias de antemano!

Respuesta1

Creo que buscaría la -d directoryopción de RewriteCond para probar si existe un directorio para este vhost y, si no existe, redirigir explícitamente a www.example.com. Esto permite que las personas no se sorprendan cuando obtienen una página que no esperaban y evita la indexación múltiple por parte de los motores de búsqueda.

Respuesta2

línea 458 de module/mappers/mod_vhost_alias.c

if (strncasecmp(name,"www.",4) == 0) {
    name+=4;
}

información relacionada