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.com
será 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:
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óndomain.com
no coincidirá, mientras que los siguientes patrones sí coincidirán:dan.domain.com
www.dan.domain.com
RewriteRule ^/(.*)$ https://%1.domain.es/$1 [R=301,L]
Esta regla le indica a Apache que redirija a un subdominio de
domain.es
.%1
contiene el valor coincidente en laRewriteCond
directiva anterior. Mientras$1
contiene 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.com
redirigirá ahttps://dan.domain.es
www.dan.domain.com
redirigirá ahttps://www.dan.domain.es
dan.domain.com/example
redirigirá ahttps://dan.domain.es/example
www.dan.domain.com/example
redirigirá ahttps://www.dan.domain.es/example