同じサーバー上の 2 つの Web サイトでの誤った https リダイレクト

同じサーバー上の 2 つの Web サイトでの誤った https リダイレクト

私は2つのウェブサイトを持っています。例1.comそして例2.com同じサーバーにデプロイ(セントOS7.5) は両方ともポート 80 で Apache によって提供されます。リダイレクトは仮想ホストを使用して実行されます (完全な構成については以下を参照してください)。

どちらのサイトでも、私は(恒久的に)http URL を https に変更します (証明書に問題はなく、ボットは正常に動作します)。

私が遭遇した問題は、2 番目の Web サイトの http バージョンが最初の Web サイトの https にリダイレクト (永続的に移動、301) されることです (サイトの順序は以下の .conf ファイルに従います)。

このリダイレクトは、2番目のWebサイトが最初のWebサイトにリダイレクトされる場合には発生しません(以下のconfを参照)。また、httpからhttpsにリダイレクトする必要がなければ、すべて正常に動作します。つまり、次のように開始します。https://www.example-2.com

ここでは.confファイル、これを修正する方法についてのアイデアがあれば、ぜひ教えてください。

Listen 80

<VirtualHost *:80>
    ServerName example-1.com
    Redirect permanent / https://www.example-1.com/
</VirtualHost>

<IfModule mod_ssl.c>
<VirtualHost *:443>
    DocumentRoot "/var/www/html/example-1"
    ServerName www.example-1.com
    ServerAlias example-1.com

## logging
   ErrorLog "/var/log/httpd/example-1-error_log"
   CustomLog "/var/log/httpd/example-1-access_log" combined

        <Directory "/var/www/html/example-1">
                DirectoryIndex index.html index.php
                Options FollowSymLinks
                AllowOverride All
       </Directory>
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/example-1.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example-1.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example-1.com/chain.pem
</VirtualHost>
</IfModule>
<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/css application/x-javascript text/x-component text/html text/plain text/xml application/javascript
</IfModule>

そしてその会議2番目のウェブサイトの(名前以外の唯一の違いは、この2番目のウェブサイトには80を聴く頂点で)

<VirtualHost *:80>
    ServerName example-2.com
    Redirect permanent / https://www.example-2.com/
</VirtualHost>

<IfModule mod_ssl.c>
<VirtualHost *:443>
    DocumentRoot "/var/www/html/example-2"
    ServerName www.example-2.com
    ServerAlias example-2.com

## logging
   ErrorLog "/var/log/httpd/example-2-home-error_log"
   CustomLog "/var/log/httpd/example-2-home-access_log" combined

        <Directory "/var/www/html/example-2">
                DirectoryIndex index.html index.php
                Options FollowSymLinks
                AllowOverride All
        </Directory>
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/example-2.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example-2.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example-2.com/chain.pem
</VirtualHost>
</IfModule>
<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/css application/x-javascript text/x-component text/html text/plain text/xml application/javascript
</IfModule>

答え1

ようやく自分の設定のどこが間違っていたのかがわかったと思います。同様の問題を抱えている人がいるかもしれないので、ここに投稿します。

サーバー名をwww相当のものに変更し、wwwなしのサーバーエイリアスを追加しました。つまり、ディレクティブは次のようになります。

<VirtualHost *:80>
    ServerName www.example-1.com
    ServerAlias example-1.com
    Redirect permanent / https://www.example-1.com/
</VirtualHost>

2 番目の Web サイトでも同じ調整を行いました。これにより、誤ったリダイレクトの問題が解決しました。

関連情報