httpからhttpsにリダイレクト、www有無のリダイレクト方法(mod_rewrite)

Webサイトは常時SSLが当たり前の時代になりました。
今回の記事では、これまで

http://example.com」や、「http://www.example.com」で運用してきたWebサイトを、「https://example.com」に転送する方法をご紹介します。

サイトをSSL化した場合に対策をしておかないと、ブックマークや、Googleの検索エンジンからの流入などから古いURLにアクセスされる可能性があります。
古いURLにアクセスが残ったままですと様々なデメリットがありますので、常時SSL化後には設定しておきたい項目です。

常時SSLとは

Webサイトを閲覧する端末と、Webサイト間の通信を常にSSL/TLSで暗号化をし、第三者に情報を読み取られないようにすることです。

WebサイトのURLは下記の通りです。

(非SSL)http://example.com

(SSL)https://example.com

 

転送方法

 

http:// もしくは、www 有り無しの転送はApache(Webサーバー)の、mod_rewriteという機能を使い転送を行います。
今回は下記の通り、3つのURLの場合に、https://example.comに転送を行います。

転送するURL:

http://www.example.com
http://example.com
https://www.example.com

転送先URL:

https://example.com

 

  1. Webサーバーにログインし「.htaccess」ファイルを作成します。
    すでに.httaccessファイルが存在する場合は、手順2の項目を追記してください。

    * .htaccessの記述を間違えますと、サーバーが動作しなくなりますので、必ずテストサイトで検証してから、本番環境にアップロードしてください。
     

  2. .htaccessファイルを下記の通り編集します。
    1. ##
    2. # SymlinksはCPIサーバーをご利用の場合記述が必要です。
    3. # CPIサーバー以外でも、mod_rewriteを有効にし、エラーがでる場合は、
    4. # どちらかのオプションを有効にしてください。
    5. ##
    6. # CPIサーバーでACE01_2015以降のサーバー
    7. Options +SymLinksIfOwnerMatch
    8. # CPIサーバーでACE01_2011以前のサーバー
    9. Options +FollowSymLinks
    10.  
    11. <IfModule mod_rewrite.c>
    12. RewriteEngine On
    13. RewriteBase /
    14.  
    15. # httpからの通信を、httpsにリダイレクト(www有り無し)
    16. RewriteCond %{HTTPS} off
    17. RewriteRule ^(.*$) https://example.com/$1 [R=301,L]
    18.  
    19. # httpsからの通信でwww有りの場合、www無しにリダイレクト
    20. RewriteCond %{HTTPS} on
    21. RewriteCond %{HTTP_HOST} ^www.example.com$
    22. RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]
    23. </IfModule>

    example.comを設定するURLに変更してください。

 

以上で転送設定が完了です。

 

証明書エラーが出る場合

 

「安全な接続ができませんでした」などのエラーが出る場合は下記を確認ください。

 

SSL証明書が正しく設定されているか。
Chromeブラウザの場合サイトにアクセスすると「鍵」マークのアイコンが出ます。アイコンが出ない場合は証明書が失効している可能性がありますので、Webサーバーの管理会社に問い合わせください。

 

https://www有りから、https://www無しへの転送の場合、www有りと無しの2つのURLに対してSSL設定が必要です。
1つのSSL証明書で、2つのURLにSSLを設定する場合は、SSL証明書がSANs対応している必要があります。

CPIサーバーの場合ですと、シマンテックジオトラストの証明書がSANs対応しています。CPI SSLは対応していませんのでご注意ください。

 

 

 

関連タグ: 

この記事をシェアする

Author
この記事を書いた人:阿部 正幸

モチヤ株式会社 阿部正幸

KDDIウェブコミュニケーションズに入社後、CPIブランドのACE01をプロダクトマネージャーとしてローンチし、エバンジェリストとしてイベント登壇を行う。
現在は、KDDIウェブコミュニケーションズを退職し、モチヤ株式会社で、Web制作、受託開発、コンサルティングを行なっている。