
Tengo un vhost ejecutándose en un servidor CentOS 7, que presta servicio a 2 tiendas Prestashop.
En este archivo de configuración de vhost, tengo un ServerName y un ServerAlias, cada uno de los cuales dirige a un almacén dedicado.
Recientemente moví ambas tiendas a HTTPS, pero queda una pregunta: sé cómo reescribir la URL para redirigir de HTTP a HTTPS, pero ¿puedo redirigir según la URL solicitada por el cliente?
Sé cómo hacerlo con 2 vhosts, pero como la configuración será casi idéntica, quería hacerlo con un solo archivo.
Ejemplo: reescribir http://store1.example.com
en https://store1.example.com
Y http://store2.example.com
en https://store2.example.com
todos en el mismo archivo de configuración de Vhost.
Respuesta1
Puedes usar la variable HTTP_HOST que establece Apache:
<VirtualHost *:80>
ServerName store1.example.com
ServerAlias store2.example.com
RewriteEngine On
RewriteRule ^/?(.*)$ https://%{HTTP_HOST}/$1 [R=301]
</VirtualHost>
Respuesta2
Puede colocarlos en uno o varios archivos como desee, pero la forma más sencilla de hacerlo es con varias <VirtualHost>
directivas:
<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>