最近、「301リダイレクトが急に効かなくなった」という相談を受けました。
調べてみたところ、リダイレクト元ドメインのSSL証明書が切れていたのが原因でした。SSLが切れていたため、HTTPSの通信が確立できず、当然ながらリダイレクトもうまく動作しなくなっていた、というわけです。
サーバーはXserverを利用していて、通常は自動でSSL更新される設定になっていました。
しかし、.htaccessでリダイレクト設定をしていたためにSSLの自動更新に失敗していました。
Xserverにも「リダイレクト設定があるとSSL化に失敗する」と明記されているので、このあたりは盲点になりがちですね。
対処法としては:
1).htaccessのリダイレクト設定を一時的にコメントアウト
2)SSL証明書の再申請(Xserverの管理画面から)
3)SSLが有効になったのを確認後、リダイレクト設定を再有効化
という流れで、無事に復旧できました。
ちなみに今回のケースでは、「https://旧ドメイン → https://新ドメイン」だけを転送対象にしていたため、SSLが切れた旧ドメインのHTTPSアクセスがすべて失敗してしまっていました。
ここで一つポイントなのが、「http://旧ドメイン → https://新ドメイン」への転送設定も加えておくことです。
これを入れておけば、仮にSSLが切れていてもhttp経由のアクセスは転送され続けるため、「突然サイトが飛ばなくなった」という事態を防ぐことができます。
とはいえ、旧ドメイン自体も引き続きhttps対応させておきたい場合は、やはり一度リダイレクト設定を外してSSLの更新を済ませるのがベストです。
SSL証明書の更新とリダイレクト設定は、時に相性が悪いので注意ですね。
SSL証明書の有効期限や、リダイレクトの設定が影響していないか、見直しておくのは大事ですね!
同じような状況に遭遇した方の参考になれば幸いです。
