Я просмотрел все подобные темы в Интернете, я не могу найти решение.
Я успешно установил сертификат Let’s Encrypt, но не могу заставить работать автоперенаправление с http. Перенаправление задается certbot (сценарий установки Letsencrypt) через файл /etc/apache2/sites-available/domain.com.conf. Вот содержимое файла:
<VirtualHost *:80>
ServerName domain.com
ServerAlias www.domain.com
ServerAdmin webmaster@localhost
DocumentRoot /home/username/public_html/domain.com/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =www.domain.com [OR]
RewriteCond %{SERVER_NAME} =domain.com
RewriteCond %{THE_REQUEST} !/(robots.txt|sitemap.xml)\s [NC]
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
Файл связан с его символической ссылкой с поддержкой сайтов правильно. Я пытался перезагрузить/перезапустить службу apache2, попытался отключить локальный файл .htaccess для этого сайта, но все безрезультатно. Я просмотрел все файлы .conf и убедился, что этот домен не упоминается ни в одном другом файле .conf. Странно то, что перенаправление работает с некоторыми моими сайтами, расположенными на том же сервере, а с некоторыми — нет.
Пробовал просматривать лог-файлы, но ничего конкретного не нашел.
Пожалуйста помоги!

Нашел.
Причина была в том, что я перенес часть доменов с другого сервера, поэтому скопировал оттуда все файлы .conf. Поскольку IP был другим, мне пришлось перевыпустить и переустановить сертификаты. По какой-то непонятной причине Certbot создал раздел <VirtualHost *:80> внутри каждого *-le-ssl.conf, но закомментировал раздел перенаправления. Таким образом, вместо файла домен.com.conf фактически использовался файл domain.com-le-ssl.conf для подключения к порту 80.
Решение состоит в том, чтобы либо раскомментировать раздел перенаправления файла *-le-ssl.conf, либо полностью удалить из него часть <VirtualHost *:80>, чтобы позволить файлу *.conf вступить во владение.
Спасибо! Несмотря на то, что я никогда не перемещал сервер и даже не очищал все файлы -le-ssl, он сгенерировал виртуальный хост HTTP только для одного домена, но все остальные были правильными. В итоге проверил все с ls | grep le-ssl | xargs grep *:80 в /etc/apache2/sites-enabled
как выглядит конфиг сервера порта 443?