Apache перенаправляет HTTP на HTTPS в Ubuntu 18.04

12 set 2022 2 min di lettura
Apache перенаправляет HTTP на HTTPS в Ubuntu 18.04
Indice dei contenuti

Введение

Если на сервере установлен SSL-сертификат, по умолчанию веб-сайт недоступен через защищенное HTTPS-соединение. Вам нужно добавлять « HTTPS » к URL-адресу каждый раз, когда вам нужно безопасно подключиться. Лучший способ обеспечить максимальную безопасность посетителей веб-сайта — включить автоматическое перенаправление с HTTP на HTTPS.

В этом руководстве показано, как перенаправить URL-адрес с HTTP на HTTPS, например, с http://example.it на https://example.it, с помощью Apache в Ubuntu 18.04.

Предпосылки

В этом руководстве предполагается, что у вас есть привилегии суперпользователя — sudo или root — на сервере, на котором работает Apache. Если вы еще не настроили его, следуйте этому руководству: Ubuntu 18.04 LTS Initial Setup.

Предполагается, что Apache установлен. Если он не установлен, следуйте этому руководству: Как установить LAMP (Apache MySQL PHP) на Ubuntu 18.04 LTS.

Включить модуль перезаписи

Для перенаправления с HTTP на HTTPS мы будем использовать модуль Apache mod_rewrite. Таким образом, пользователи смогут получить доступ к вашей с большей безопасностью.

Во-первых, убедитесь, что модуль mod_rewrite включен с помощью этой команды:

sudo a2enmod rewrite

Перезапустите Апач:

sudo service apache2 restart

С включенным модулем перезаписи мы можем настроить Apache с правилами перенаправления, используя файл .htaccess.

Давайте посмотрим, как использовать файл.htaccess для установки правил перенаправления.

Включить файл.htaccess

Чтобы включить.htaccess, откройте файл конфигурации Apache. В Ubuntu файл конфигурации по умолчанию находится в /etc/apache2/sites-enabled/000-default.conf, поэтому откройте файл:

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

Найдите DocumentRoot вашего сайта и запишите его. По умолчанию корневая папка (DocumentRoot ) — это /var/www/html, поэтому мы будем использовать этот каталог в нашем примере конфигурации.

Добавьте следующую директиву Directory в конец файла, если ее еще нет, и обязательно замените DocumentRoot своим каталогом (если он отличается), в противном случае оставьте следующее:

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

Сохраните и закройте файл, нажав CTRL + X, затем Y, чтобы сохранить изменения, а затем ENTER, если вы используете nano.

Теперь файл конфигурации должен выглядеть так:

<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>

Теперь перезапустите Apache, чтобы изменения вступили в силу:

sudo service apache2 restart

Apache настроен на чтение файлов .htaccess, расположенных в любом месте каталога /var/www/html. Теперь давайте добавим правила перезаписи для редиректа.

Теперь создайте или отредактируйте файл.htaccess, чтобы включить правила перенаправления. Переместим каталоги в DocumentRoot, в нашем случае /var/www/html:

cd /var/www/html

Давайте создадим или изменим файл .htaccess:

sudo nano.htaccess

Конечно, если вы еще не создали файл, он будет пустым. Теперь давайте настроим редирект с www на без www или с без www на www.

Добавьте следующие строки кода, чтобы установить перенаправление с www на не-www с 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]

Наоборот, с не-www на www с 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]

Вывод

В этом руководстве мы узнали, как настроить правила перенаправления для Apache2 с www на без www и наоборот с 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.