Apache2を実行しているAmazonEC2インスタンスにUbuntu18.04サーバーがあり、SSL証明書がインストールされています。これは、 policymakr.com ドメインの.tldバリエーションの仮想ホストをホストするためにのみ使用し、同じものを共有します。固定IP。
次のことを実現する構成が必要です。
(私がこれを行っている理由は、SEOの目的で301を介してTLDを再マップしたいためです。これは、私のWordPressサイトのホストでは、サイトが共有サーバーでホストされます。)
私はTLDの設定を開始しましたが、問題なくリダイレクトされました。 TLDの.confファイル(.net、.org、.info、および.io)はすべて同一であり、次のようになります。
<VirtualHost *:80>
ServerAdmin [email protected]
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リダイレクトはすべて問題なく機能し始めました。
外部SSL証明書をインストールする必要があるという少し余分な複雑さのために、policymakr.domainsの仮想ホストを設定し続けました(Amazon証明書はEC2インスタンスにアタッチできないようです)。
私が設定したpolicymakr.domains仮想ホストは次のようになります。
<VirtualHost *:80>
ServerAdmin [email protected]
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)が、他のtldの301リダイレクトは機能しなくなりました。代わりに、それらはすべて https://www.policymakr.domains にリダイレクトされます。
私は基本的にここで何が間違っているのかわかりません。
構成全体が実際には数時間後に機能するようになりました。これは、何らかのキャッシュの問題であった可能性があります。私が追加した唯一の変更は、各ServerAlias policymakr.[tld]
ファイルの.conf
エントリでした。