У меня есть сервер Ubuntu 18.04 на инстанс Amazon EC2 с Apache 2, с установленным сертификатом SSL, который я использую исключительно для размещения виртуальных хостов для вариантов .tld домена policymakr.com , использующих один и тот же фиксированный IP-адрес.
Я хочу, чтобы конфигурация обеспечивала следующее:
(Причина, по которой я это делаю, состоит в том, что я хочу переназначить tld через 301 для целей SEO, и это может ' Это достигается хостом моего сайта WordPress, потому что сайт размещен на общем сервере.)
Я начал настраивать tld, и они нормально перенаправили. Файлы .conf для tld (.net, .org, .info и .io) идентичны и выглядят следующим образом:
<VirtualHost *:80>
ServerAdmin webmaster@policymakr.com
ServerName www.policymakr.[tld]
DocumentRoot /var/www/html/policymakr.[tld]/
ErrorLog /var/www/logs/error.log
Redirect 301 / https://www.policymakr.com/
</VirtualHost>
После того, как я настроил виртуальные хосты tld, все 301 редиректы начали работать безупречно.
] Я продолжал настраивать виртуальный хост для policymakr.domains в течение длительного времени из-за небольшой дополнительной сложности, связанной с необходимостью установки внешнего SSL-сертификата (сертификаты Amazon, похоже, не могут быть прикреплены к экземплярам EC2).
Виртуальный хост policymakr.domains, который я настроил, выглядит следующим образом:
<VirtualHost *:80>
ServerAdmin webmaster@policymakr.com
ServerName www.policymakr.domains
ServerAlias policymakr.domains
DocumentRoot /var/www/html/policymakr.domains/
ErrorLog /var/www/logs/error.log
RewriteEngine on
RewriteCond %{HTTP_HOST} ^policymakr\.domains
RewriteRule ^(.*)$ http://www.policymakr.domains/$1 [R=permanent,L]
</VirtualHost>
<VirtualHost *:443>
ServerName www.policymakr.domains
ServerAlias policymakr.domains
DocumentRoot /var/www/html/policymakr.domains/
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/[crt file name]
SSLCertificateKeyFile /etc/apache2/ssl/private/[private key]
SSLCertificateChainFile /etc/apache2/ssl/[bundle file]
RewriteEngine on
RewriteCond %{HTTPS_HOST} ^policymakr\.domains
RewriteRule ^(.*)$ https://www.policymakr.domains/$1 [R=permanent,L]
</VirtualHost>
После этого перенаправления для policymakr.domains работают точно так, как я хотел (т.е. без www на www, http на https), но 301 Redirects для другие TLD перестали работать. Вместо, все они теперь перенаправляют на https://www.policymakr.domains .
Я в основном не знаю, что я здесь ошибаюсь.
Вся конфигурация фактически перестала работать через несколько часов, возможно, это была какая-то проблема с кешированием. Единственное изменение, которое я добавил, - запись ServerAlias policymakr. [Tld]
в каждом файле .conf
.