親ドメインで常時SSL化したサイトにサブドメインを追加する際、利用条件が揃っているのにサブドメインに無料SSL(レッツエンクリプト)が発行できない場合があります。
多くの場合は、親ドメインで常時SSL化するために入れたリダイレクト設定や正規化のリダイレクトが原因な可能性ありますので、.htaccess など関連個所を確認しリダイレクト設定がある場合は、サブドメインからのリクエストは除外する設定を加えると解決出来ると思います。
.htaccess 内のリダイレクト設定の除外方法ですが、親ドメイン用の .htaccess に除外条件を追加する方法とサブドメイン用のディレクトリにリダイレクトをしない設定を追加する方法があります。
親ドメインの .htaccess に設定
sub1.example.com と sub2.example.com の2つのサブドメインを追加し無料SSLを発行する前に既存のリダイレクト設定に以下の除外条件を追加します。
RewriteCond %{HTTP_HOST} !^sub1\.example\.com$
RewriteCond %{HTTP_HOST} !^sub2\.example\.com$
以下、上記2行を追加した一式のコードです。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^sub1\.example\.com$
RewriteCond %{HTTP_HOST} !^sub2\.example\.com$
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</IfModule>
サブドメイン用 .htaccess に設定
サブドメインのドキュメントルートになっているディレクトリ直下の .htaccess に以下の1行を追加します。
RewriteEngine off
動作環境情報
"エックスサーバー" スタンダード(旧X10)
コメント