2013年7月30日火曜日

SSL環境下で301リダイレクトを使って「WWWあり」と「WWWなし」を統一する

レンタルサーバを借りて、ドメイン登録をしました。

私の入ったレンタルサーバは、www.example.comと「www.あり」

example.comの「www.なし」いずれの指定でもアクセス可能な設定でした。

今回、SSLを設置するにあたり、コモンネームというのをSSLに指定する

必要に迫られました。

????

SSL通信を行うには、サーバー証明書というのが必要で、この証明書に

コモンネームという設定があり、ここにURLを指定する必要があります。

すなわち、

コモンネームに指定されたURLによるアクセスでなければ、SSL通信

ができないということだそうです。

ということは、ドメインの指定で上記のように「www.あり」「www.なし」の

いづれでもアクセス可能な設定であっても、SSL通信をするには、いづれか

一方に決めないとコモンネームに登録されていないURLでアクセスすると

SSL通信が確立されないのです。

たとえば、

コモンネームが、www.example.comと指定されている環境で、

example.com

と指定してアクセスすると、SSL通信できません。

ということらしいのです。

そこで、

SSL導入にあたり、ドメイン「example.com」に「www.あり」「www.なし」

いづれか一方に統一する設定、http://でアクセスしても、https://にリダイレクトする設定
をすることになりました。

方法を以下に示します。

ドメインのルート直下にある「.htacsess」ファイルに以下の設定を追加記入します。

★「www.あり」に統一かつ、コモンネームのアドレスにリダイレクトさせる場合

▼設定例(example.com)
-----------------------------------------------------
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^example.com
RewriteRule (.*) https://www.example.com/$1 [R=301,L]
-----------------------------------------------------

★「www.なし」に統一かつ、コモンネームのアドレスにリダイレクトさせるする場合

▼設定例(example.com)
-----------------------------------------------------
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^example.com
RewriteRule (.*) https://example.com/$1 [R=301,L]
-----------------------------------------------------

じゃあ、どちらに統一すべきか?

という議論がありますが、私見では、どっちでも、お好きなほうを

選べば良いと思います。

※この手法は、サイト移転したときに、アドレス転送をする場合にも使うそうです。

引越し前サイトに新サイトのアドレスを埋めればOK。

0 件のコメント:

コメントを投稿