web-dev-qa-db-ja.com

Apache上の仮想ホストが301リダイレクトを適用していない

Apache2を実行しているAmazonEC2インスタンスにUbuntu18.04サーバーがあり、SSL証明書がインストールされています。これは、 policymakr.com ドメインの.tldバリエーションの仮想ホストをホストするためにのみ使用し、同じものを共有します。固定IP。

次のことを実現する構成が必要です。

  1. サーバー上でアクセス可能なメインドメイン(index.htmlページがあり、SSLによってサーバー上でアクセス可能であることが意図されているpolicymakr.domains)。
  2. 301リダイレクトを介してリダイレクトする他のすべてのtld https://www.policymakr.com これは管理対象WordPressホスト;
  3. すべてのhttpインバウンドpolicymakr.domainsトラフィックをhttpsにリダイレクトし、すべてのpolicymakr.domainsトラフィックをwww.policymakr.domainsにリダイレクトします。

(私がこれを行っている理由は、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 にリダイレクトされます。

私は基本的にここで何が間違っているのかわかりません。

1
Donald Jenkins

構成全体が実際には数時間後に機能するようになりました。これは、何らかのキャッシュの問題であった可能性があります。私が追加した唯一の変更は、各ServerAlias policymakr.[tld]ファイルの.confエントリでした。

1
Donald Jenkins