Estoy redirigiendo todas las solicitudes http:// a https:// usando un archivo .conf del host Apache2 como este.
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
Redirect / https://www.example.com/
</VirtualHost>
<VirtualHost *:443>
ServerName www.example.com
#more details here
</VirtualHost>
Esto funciona bien y redirige todas las solicitudes a https://
Ahora quiero redirigir mi solicitud que no es www a www (para quehttps://ejemplo.comahttps://www.ejemplo.com). Intenté agregar estas líneas a continuación antes y luego después del bloque 443 anterior. Pero no hubo suerte :(
<VirtualHost *:443>
ServerName example.com
Redirect / https://www.example.com/
</VirtualHost>
¿Alguna idea de cómo puedo habilitar esto sin .htaccess?
Por favor ayuda..
Respuesta1
Desea agregar la redirección al *:443
vhost existente. Algo como esto debería hacerlo:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
Pon eso antes que cualquier otra RewriteRule
sección.
Respuesta2
Lo que tienes ya es correcto.
Y necesitas definir *:443
con NameVirtualHost
.
Utilice esta configuración donde # more details here
está toda su configuración SSL, como ya tiene:
NameVirtualHost *:443
<VirtualHost *:443>
ServerName www.example.com
# more details here
</VirtualHost>
<VirtualHost *:443>
ServerName example.com
Redirect / https://www.example.com/
# more details here
</VirtualHost>
Necesitará los detalles de su certificado SSL encada VirtualHost
contenedor, incluso si son iguales.
Por favornoutilice direcciones IPv4 adicionales: este caso de uso no requiere consumir direcciones IP adicionales. HTTP/1.1 puede manejar múltiples dominios en una dirección IP, incluso con SSL.