Apache redirige de HTTP a HTTPS en Ubuntu 18.04

27 feb 2021 3 min di lettura
Apache redirige de HTTP a HTTPS en Ubuntu 18.04
Indice dei contenuti

Introducción

Cuando se instala un certificado SSL en el servidor, el sitio web no está disponible a través de una conexión HTTPS segura de forma predeterminada. Debe agregar " HTTPS " a una URL cada vez que necesite conectarse de forma segura. La mejor manera de lograr la máxima seguridad para los visitantes del sitio web es habilitar un redireccionamiento automático de HTTP a HTTPS.

Este tutorial le mostrará cómo redirigir una URL de HTTP a HTTPS, por ejemplo, de http://example.it a https://example.it, con Apache en Ubuntu 18.04.

Prerrequisitos

Este tutorial asume que tiene privilegios de superusuario ( sudo o root) en el servidor que ejecuta Apache. Si aún no lo ha configurado, siga este tutorial: Configuración inicial de Ubuntu 18.04 LTS.

Se supone que Apache está instalado. Si no está instalado, siga este tutorial: Cómo instalar LAMP (Apache MySQL PHP) en Ubuntu 18.04 LTS.

Habilitar módulo de reescritura

Para redirigir de HTTP a HTTPS, usaremos el módulo mod_rewrite de Apache. De esta forma, los usuarios podrán acceder al tuyo con mayor seguridad.

Primero, verifique que el módulo mod_rewrite esté habilitado con este comando:

sudo a2enmod rewrite

Reinicie Apache:

sudo service apache2 restart

Con el módulo Rewrite habilitado, podemos configurar Apache con reglas de redireccionamiento usando el archivo .htaccess.

Veamos cómo usar el archivo.htaccess para establecer las reglas de redireccionamiento.

Habilite el archivo.htaccess

Para habilitar.htaccess, abra su archivo de configuración de Apache. En Ubuntu, el archivo de configuración predeterminado se encuentra en /etc/apache2/sites-enabled/000-default.conf, así que abra el archivo:

sudo nano /etc/apache2/sites-enabled/000-default.conf

Busque DocumentRoot de su sitio y anótelo. De forma predeterminada, la carpeta raíz (DocumentRoot ) es /var /www /html, por lo que usaremos este directorio en nuestra configuración de ejemplo.

Agregue la siguiente directiva de directorio al final del archivo, si aún no está allí, y asegúrese de reemplazar DocumentRoot con su directorio (si es diferente); de lo contrario, deje lo siguiente:

 <Directory /var/www/html>
 Options Indexes FollowSymLinks MultiViews
 AllowOverride All
 Order allow,deny
 allow from all
 </Directory>

Guarde y cierre el archivo presionando CTRL + X, seguido de Y para guardar los cambios y luego ENTER si está usando nano.

El archivo de configuración ahora debería verse así:

<VirtualHost *:80>...

 ServerAdmin webmaster@localhost
 DocumentRoot /var/www/html

 ServerName TUO_DOMINIO.it
 ServerAlias www.TUO_DOMINIO.it
 ErrorLog ${APACHE_LOG_DIR}/error.log
 CustomLog ${APACHE_LOG_DIR}/access.log combined...

 </VirtualHost>
 # vim: syntax=apache ts=4 sw=4 sts=4 sr noet

 <Directory /var/www/html>
 Options Indexes FollowSymLinks MultiViews
 AllowOverride All
 Order allow,deny
 allow from all
 </Directory>

Ahora reinicie Apache para que el cambio surta efecto:

sudo service apache2 restart

Apache está configurado para leer archivos.htaccess ubicados en cualquier lugar del directorio /var /www /html. Ahora agreguemos las reglas de reescritura para la redirección.

Ahora cree o modifique el archivo.htaccess para habilitar las reglas de redireccionamiento. Muevamos directorios a DocumentRoot, en nuestro caso /var /www /html:

cd /var/www/html

Creemos o modifiquemos el archivo .htaccess:

sudo nano.htaccess

Por supuesto, si aún no ha creado el archivo, estará vacío. Ahora configuremos el redireccionamiento de www a non-www o de non-www a www.

Agregue las siguientes líneas de código para configurar el redireccionamiento de www a non-www con HTTPS:

RewriteEngine On
 RewriteCond %{HTTPS} off [OR]
 RewriteCond %{HTTP_HOST} ^www\. [NC]
 RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
 RewriteRule ^ https://%1%{REQUEST_URI} [L,NE,R=301]

Viceversa de non-www a www con HTTPS:

RewriteEngine On
 RewriteCond %{HTTPS} off [OR]
 RewriteCond %{HTTP_HOST}!^www\. [NC]
 RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
 RewriteRule ^ https://www.%1%{REQUEST_URI} [L,NE,R=301]

Conclusión

En este tutorial aprendimos cómo configurar las reglas de redireccionamiento para Apache2 de www a non-www y viceversa con HTTPS.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.