Eu tenho um aplicativo em execução na porta 8080 do Tomcat. E funciona bem com esta configuração do 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>
Agora tenho um novo servidor e uma nova aplicação que filtra o "subdomínio" e carrega diferentes htmls e diferentes folhas de estilo dependendo do nome do subdomínio (o subdomínio é criado por diferentes empresas que especificam seus próprios estilos).
É possível obter o nome do subdomínio e redirecionar para o mesmo subdomínio usando https? Algo como ServerName *.domain.com e redirecionar para qualquer que seja o subdomínio (*.domain.com)? Armazená-lo em uma variável?
Passei pela macro mas a macro precisa que os parâmetros sejam passados para ela. Não sei quais parâmetros vão entrar na requisição pode ser empresa1 pode ser empresa2...
Responder1
Você pode usar oReescrevermódulo do Apache.
Primeiro, certifique-se de que esteja habilitado no Ubuntu com o seguinte comando:
sudo a2enmod rewrite
Se você adicionar a seguinte configuração ao seu host virtual, qualquer subdomínio domain.com
será redirecionado para um subdomínio de domain.es
.
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(.+)\.domain\.com$
RewriteRule ^/(.*)$ https://%1.domain.es/$1 [R=301,L]
Explicação:
RewriteCond %{HTTP_HOST} ^(.+)\.domain\.com$
Esta condição verificará se o host corresponde ao padrão *.domain.com e armazenará o que foi correspondido
(.+)
(ou seja, o subdomínio). Por exemplo, o padrãodomain.com
não corresponderá, mas os seguintes padrões corresponderão:dan.domain.com
www.dan.domain.com
RewriteRule ^/(.*)$ https://%1.domain.es/$1 [R=301,L]
Esta regra instrui o Apache a redirecionar para um subdomínio de
domain.es
.%1
contém o valor correspondente naRewriteCond
diretiva anterior. While$1
contém o valor correspondente nesta diretiva para que você possa manter o caminho como está e não redirecionar para a raiz do domínio.
Exemplos:
dan.domain.com
irá redirecionar parahttps://dan.domain.es
www.dan.domain.com
irá redirecionar parahttps://www.dan.domain.es
dan.domain.com/example
irá redirecionar parahttps://dan.domain.es/example
www.dan.domain.com/example
irá redirecionar parahttps://www.dan.domain.es/example