Reescrita de URL do Apache com ServerAlias

Reescrita de URL do Apache com ServerAlias

Eu tenho um vhost rodando em um servidor CentOS 7, que atende 2 lojas Prestashop.
Neste arquivo vhost conf, tenho um ServerName e um ServerAlias, cada um direcionando para um armazenamento dedicado.

Recentemente mudei as duas lojas para HTTPS, mas uma dúvida permanece: sei como reescrever a URL para redirecionar de HTTP para HTTPS, mas posso redirecionar com base na URL solicitada pelo cliente?

Eu sei fazer isso com 2 vhosts, mas como o conf será quase idêntico, queria fazer isso com apenas um arquivo.

Exemplo: reescrever http://store1.example.compara https://store1.example.comAND http://store2.example.compara https://store2.example.comtodos no mesmo arquivo conf Vhost.

Responder1

Você pode simplesmente usar a variável HTTP_HOST que o Apache define:

<VirtualHost *:80>
  ServerName store1.example.com
  ServerAlias store2.example.com
  RewriteEngine On
  RewriteRule ^/?(.*)$ https://%{HTTP_HOST}/$1 [R=301]
</VirtualHost>

Responder2

Você pode colocá-los em um ou mais arquivos conforme desejar, mas a maneira mais direta de fazer isso é com múltiplas <VirtualHost>diretivas:

<VirtualHost *:80>
    ServerName store1.example.com
    Redirect permanent / https://store1.example.com
</VirtualHost>
<VirtualHost *:80>
    ServerName store2.example.com
    Redirect permanent / https://store2.example.com
</VirtualHost>
<VirtualHost *:443>
    ServerName store1.example.com
    ServerAlias store2.example.com
    ...
</VirtualHost>

informação relacionada