Недавно я создал новый веб-сайт, работающий на Wordpress, который отлично работает. Поскольку я хотел иметь сертификат SSL для веб-сайта, я решил использовать Let's Encrypt, так как слышал о нем много хороших отзывов.
Я должен согласиться, что на то, чтобы SSL работал в моем домене, потребовалось 30 секунд, но есть одна небольшая проблема.
Let's encrypt установил следующие правила:
http://domain.com -> https://domain.com (не удается)
http://www.domain.com -> https://www.domain.com (работает)
Сертификат только для www.domain.com, что раздражает. Раньше все купленные мной SSL-сертификаты включали в SSL-сертификат как domain.com, так и www.domain.com. Не уверен, что я сделал что-то не так при получении сертификата Let's Encrypt, но так оно и есть.
Все, что мне нужно сделать, это изменить все, чтобы http://domain.com перенаправляет на https://www.domain.com.
Но поскольку я новичок в Apache, я понятия не имею, как это сделать. У меня есть следующее правило перенаправления в моем файле .htaccess, но оно, похоже, не помогает, поскольку кажется, что Apache перенаправляет до того, как запрос попадет в правило перезаписи в файле .htaccess. Вот правило:
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
Так что я очень зациклился на этой конкретной проблеме. Сайт был правильно перенаправлен с domain.com на www.domain.com до того, как я добавил сертификат SSL, поэтому похоже, что это была автоматическая установка Let's Encrypt, и я не могу ее найти.
Это правило перезаписи Let's Encrypt, добавленное в мой файл конфигурации Apache:
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,QSA,R=permanent]
Я думаю, это как-то связано с приведенной выше строкой, но не знаю что.
Любая помощь будет оценена.
Вам необходимо создать отдельный VirtualHost для домена без www и настроить перенаправление с него следующим образом:
<VirtualHost *:80>
ServerName domain.com
Redirect 301 / https://www.domain.com
</VirtualHost>
По сути, добавление приведенного выше кода в httpd.conf должно решить вашу проблему. Хотя вы можете проконсультироваться с документацией по своей ОС, чтобы добавить виртуальные хосты в apache ...