ネットショップを運営している方から相談を受けました。
この記事は「BASE」でネットショップを運営しているサイトの独自ドメインにまつわる覚え書きです。
背景はこんな感じ
現在、某ネットショップサービス(仮にAカートと呼びます)を利用して、ネットショップ運営しています。
今後は、AカートをやめてBASEでネットショップを運営したいと考えています。
コンテンツはすべて手作業で移行します。
問題はショップのURLです。
サーバー環境はこんな感じ
サーバーやドメインの契約先は以下の3つです。
- 新たに利用するネットショップサービス:BASE
- ドメイン管理会社:スタードメイン
- レンタルサーバー:スターサーバー
前提として、独自ドメインのSSL化は、スターサーバーにてすでに完了しています。
こんなふうにしたい
ショップのURLは、セキュリティのありなし、wwwのありなしで計4種類が利用できます。
- https://************.net
- http://************.net
- https://www.************.net
- http://www.************.net
「************」の部分はすべて同じです。
現在はこうなっている
現在、お客さんがどのURLでアクセスしても、Aカートのショップへ自動転送するようにしてあります。
- https://************.net
- http://************.net
- https://www.************.net
- http://www.************.net
↓
https://************.a-cart.jp
転送には、スターサーバーの「サイト転送設定」機能を利用しています。「サイト転送設定」の記述内容は以下の通りです。
転送元パス http://************.net
転送先URL https://************.a-cart.jp
これで、お客さんがどのURLでアクセスして来ても、Aカートのショップへ飛ぶようになっています。
今後はこうしたい
BASEで独自ドメインを利用すると、ショップのURLは「https://www.************.net」のようになります。セキュリティありのwww付きです。これはBASEのルールなんですね。
その形にする前提として、スタードメインの「DNSレコード」に「CNAME」を追加する必要があります。「ホスト名」はwww付きになります。これもBASEのルールです。
さらに今回、wwwなしのURLは、いったんwww付きに転送してからBASEへ飛ばすことにしました。もっと賢いやり方があるのかもしれませんが、今回は「.htaccess」でやることにしました。
ちょっとややこしいですが、まとめると以下のようになります。
https://************.net、http://************.net
↓「.htaccess」で転送する。
http://www.************.net
↓「DNSレコード」の「CNAME」で転送する。
https://www.************.net
これで、お客さんがどのURLでアクセスして来ても、BASEのショップへ飛ぶようになります。
スターサーバーでの作業(1/2)
まずは、Aカートのショップへ自動転送しないようにします。既存のサイト転送設定を削除すればオーケー。簡単ですね。
これで、ショップのURLでアクセスしても、Aカートのショップへ転送されなくなりました。
スタードメインでの作業
スタードメインでの作業は、www付きのURLへの対応と、wwwなしのURLへの対応の2つがあります。
www付きへの対応
「DNSレコード」に「CNAME」を追加します。
ホスト名:www.************.net
タイプ:CNAME(別名)を選択する
コンテンツ:cname.thebase.in
優先度:「0」のままでオーケー
wwwなしへの対応
wwwなしのURLでアクセスして来たときのために「DNSレコード」に「A」を追加します。これをやっておかないと、後述の「.htaccess」を見に行けず、ショップが表示されません。
ホスト名:************.net
タイプ:A(IPアドレス)を選択する
コンテンツ:スターサーバーで自分に割り当てられたIPアドレス
優先度:「0」のままでオーケー
これで、wwwありなしに関係なく、独自ドメインをBASEへ転送する準備が整いました。
BASEでの作業
CNAMEの追加が終わったら、BASEで独自ドメインを使えるようにします。作業は必ずこの順番でやって下さいね。じゃないとBASEでエラーが出ます(実話)。
やり方は簡単です。BASEに「独自ドメインApp」をインストールし、独自ドメインを設定するだけです。
しかも独自ドメインは自動でSSL化してくれます。
「BASE」が独自ドメインのSSL証明書の無料発行・自動管理を開始 ‐常時SSLで安心安全なネットショップ運営を‐ _ BASE, Inc.
これで、www付きの独自ドメインがBASEへ転送されるようになりました。
スターサーバーでの作業(2/2)
「.htaccess」を編集し、wwwなしのURLをwww付きに転送します。
# httpにしてwwwを追加する
RewriteEngine on
RewriteCond %{HTTPS} on
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
ゴチャゴチャ書いてありますが要するに、
セキュリティありのURLが来たら、セキュリティなしにする。
wwwなしのURLが来たら、www付きにする。
これだけです。
もっと賢いやり方があるのかもしれませんが、今回はこのようにしました。
これですべての作業はおしまいです。
最後に、ショップの4通りのURLを入力してみて、ちゃんとBASEのショップが表示されることを確認しましょう。
お疲れさま!
以下のサイトがたいへん参考になりました。ありがとうございます!
_htaccessでhttps化かつwwwありに統一するクールな方法
BASEで独自ドメインを使用、wwwなしアドレスからのリダイレクトでXserverのSSL証明書が無効になったときの対処法 _ MONOTIPS
コメント