Reescritura de URL de Apache con ServerAlias

Reescritura de URL de Apache con ServerAlias

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.comen https://store1.example.comY http://store2.example.comen https://store2.example.comtodos 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>

información relacionada