Redirecionamento do Apache para o mesmo subdomínio?

Redirecionamento do Apache para o mesmo subdomínio?

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.comserá 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:

  1. 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ão domain.comnão corresponderá, mas os seguintes padrões corresponderão:

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

    Esta regra instrui o Apache a redirecionar para um subdomínio de domain.es. %1contém o valor correspondente na RewriteConddiretiva anterior. While $1conté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.comirá redirecionar parahttps://dan.domain.es
  • www.dan.domain.comirá redirecionar parahttps://www.dan.domain.es
  • dan.domain.com/exampleirá redirecionar parahttps://dan.domain.es/example
  • www.dan.domain.com/exampleirá redirecionar parahttps://www.dan.domain.es/example

informação relacionada