¿Apache redirige al mismo subdominio?

¿Apache redirige al mismo subdominio?

Tengo una aplicación ejecutándose en el puerto 8080 de Tomcat y funciona bien con esta configuración de VirtualHost:

<VirtualHost *:80>
     ServerAdmin [email protected]
     DocumentRoot /var/www/html
     ServerName www.subdomain.domain.com
    ServerAlias www.subdomain.domain.com *.subdomain.domain.com
     ErrorLog /var/log/apache2/subdomain.d/subdomain_er.log
     CustomLog /var/log/apache2/subdomain.d/subdomain_requests.log custom

     Redirect / https://subdomain.domain.es

</VirtualHost>

Ahora tengo un nuevo servidor y una nueva aplicación que filtra el "subdominio" y carga diferentes html y diferentes hojas de estilo según el nombre del subdominio (el subdominio lo crean diferentes empresas que especifican sus propios estilos).

¿Es posible obtener el nombre del subdominio y redirigir al mismo subdominio usando https? ¿Algo como ServerName *.domain.com y redirigir a cualquier subdominio (*.domain.com)? ¿Guardarlo en una variable?

Pasé por la macro, pero la macro necesita que se le pasen los parámetros. No sé qué parámetros se van a ingresar en la solicitud, puede ser la empresa 1, puede ser la empresa 2...

Respuesta1

Puedes usar elVolver a escribirmódulo de Apache.

Primero, asegúrese de que esté habilitado en Ubuntu con el siguiente comando:

sudo a2enmod rewrite

Si agrega la siguiente configuración a su host virtual, cualquier subdominio de domain.comserá redirigido a un subdominio de domain.es.

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(.+)\.domain\.com$
RewriteRule ^/(.*)$ https://%1.domain.es/$1 [R=301,L]

Explicación:

  1. RewriteCond %{HTTP_HOST} ^(.+)\.domain\.com$

    Esta condición investigará si el host coincide con el patrón *.dominio.com y almacenará lo que coincidió (.+)(es decir, el subdominio). Por ejemplo, el patrón domain.comno coincidirá, mientras que los siguientes patrones sí coincidirán:

    • dan.domain.com
    • www.dan.domain.com
  2. RewriteRule ^/(.*)$ https://%1.domain.es/$1 [R=301,L]

    Esta regla le indica a Apache que redirija a un subdominio de domain.es. %1contiene el valor coincidente en la RewriteConddirectiva anterior. Mientras $1contiene el valor que coincide en esta directiva para que pueda mantener la ruta tal como está y no redirigir a la raíz del dominio.

Ejemplos:

  • dan.domain.comredirigirá ahttps://dan.domain.es
  • www.dan.domain.comredirigirá ahttps://www.dan.domain.es
  • dan.domain.com/exampleredirigirá ahttps://dan.domain.es/example
  • www.dan.domain.com/exampleredirigirá ahttps://www.dan.domain.es/example

información relacionada