На этот вопрос уже есть ответ здесь:
У меня есть эти поддомены:
link.domain.com
links.domain.com
Я хочу перенаправить домен link.domain.com
на links.domain.com
. Для этого я использовал тот же метод, что описан здесь: Перенаправить субдомен на субдомен Apache2 , и он работает.
Я установил сертификат TLS для links.domain.com
с помощью Let's Encrypt, и я могу получить полный доступ к links.domain.com
по HTTPS. Я хочу, чтобы перенаправление с link.domain.com
на links.domain.com
также было эффективным в HTTPS.
Вот мой файл conf:
<IfModule mod_ssl.c>
<VirtualHost *:443>
DocumentRoot /var/www/links/
ServerName links.domain.com
<Directory "/var/www/links/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error_links.log
CustomLog ${APACHE_LOG_DIR}/access_links.log combined
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
SSLCertificateFile /etc/letsencrypt/live/links.domain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/links.domain.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>
Я уже пробовал следующее:
Добавление
ServerAlias link.domain.com
RedirectMatch постоянный ^ link.domain.com /(.*)$ https://links.domain.com/$1
после строки ServerName links.domain.com
.
Добавление
до и после уже определенного VirtualHost.
Никто не работал.
Есть идеи?
Вам необходимо иметь конфигурацию SSL в обоих VirtualHost
s, и RedirectMatch
не требуется. Попробуйте:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName link.example.com
SSLCertificateFile /etc/letsencrypt/live/links.example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/links.example.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
Redirect / https://links.example.com/
</VirtualHost>
</IfModule>
Обратите внимание, что вы все равно получите сообщение об ошибке TLS NET :: ERR_CERT_COMMON_NAME_INVALID
, если у вас также нет link.example.com
в Альтернативе темы Название вашего сертификата.