
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.com
para https://store1.example.com
AND http://store2.example.com
para https://store2.example.com
todos 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>