makeshopでネームサーバー設定を回避しつつ独自ドメイン適用

テクいというかそれほどでもないというか。

状況

とりあえず、以下の流れを踏む。

  1. お名前.comでドメインを取得
  2. お名前.comでサーバーをレンタルしてメールとサブドメインを作成
  3. makeshopに独自ドメインを適用したい
  4. ネームサーバー設定ができないから詰む

サブドメインはAレコードを指定するだけでいいんだけど、独自ドメインの適用はネームサーバーをいじらないといけない。ネームサーバーはWEBサーバーに設定してて、サブドメインとかメールアカウントに紐付いてるからいじれない。で、ネームサーバー設定用にIPが表示されてたのでAレコードに突っ込んで申請したけど弾かれた。

ひらめき

「www」つければいいじゃん

WEBサイトを作るにあたって、ドメインの「www」の有無どうするよっていう話は昔からあった。「www」だけはなぜかサブドメインじゃなくて独自ドメインとイコールの扱いになってる。だけど、そんな認識以外は通常のサブドメインと何ら変わらない。これだ。

で、念のために調べてみたらやっぱり世間的に「www」の有無は何にも影響しない。手打ちが4文字増えてめんどくさいってだけ。

「www」有りをmakeshopのやつに設定して、「www」無しはwebサーバーの方で「www」有りに転送しちゃえばいいよね。それをやる。

「www」つけたら殺すって言われたら詰む方法だから注意。

やっていく

ざっくりと以下の流れになる。

  1. makeshop管理画面でDNSレコード設定内容の確認
  2. 「www」のDNSレコードを設定
  3. makeshop管理画面でサブドメイン「www」を設定
  4. 「www」無しのディレクトリに.htaccessを設置
  5. 反映を待つ

DNSレコード設定内容の確認

ショップ作成 > ショップ情報の設定 > ドメインの設定 の「利用中ドメインのサブドメインでショップを運営したい場合」を開く。Aレコード設定に必要になるIPアドレスを確認する。収容サーバーは使わない。

「www」のDNSレコードを設定

今回はお名前.comでのサーバー契約中のドメインの設定になるんで、DNS設定の場所を間違えないこと。該当ドメインのレンタルサーバーコントロールパネルにアクセスして、「ドメイン」を開き、該当ドメインの行の「DNS」をクリックする。

タイプ「A」ホスト名「www (初期レコード)」の行を探して、「変更」をクリックして「値」を前項のIPアドレスに書き換える。

makeshopで「www」を設定

IPアドレスを確認したところに入力フォームがあるんで、「www」付きのドメインを入力する。

.htaccessを設置

このままだと「www」無しにアクセスしたらお名前.comの方が表示されちゃうんで、.htaccessで転送を仕込む。ここはちょっとめんどくさい。

# === wwwありに統一 ================================
RewriteEngine on
RewriteCond %{HTTP_HOST} ^【ドメイン名】\.jp
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ http://www.【ドメイン名】.jp/$1 [R=301,L]
# httpに統一
RewriteCond %{HTTP_HOST} ^【ドメイン名】\.jp
RewriteCond %{SERVER_PORT} 443
RewriteRule ^(.*)$ http://www.【ドメイン名】.jp/$1 [R=301,L]

「.jp」の部分はドメインに合わせて変えてね。間に記号が入ってたりするからここは省略するの怖い。

で、「www」ありに統一するのはいいんだけど、ついでに「http」にも統一しなきゃいけない。
makehsopのSSLはドメイン設定後に申請するもんだから完了するまでは「http」だもんで、ついでにお名前.comのSSLは無料から設定できるんで、設定してる癖があるなら「https」で「www」ありに飛ばすことになっちゃうこともあるんで、makeshop側でSSLが反映されるまでは「http」に転送されるように仕込む必要がある。

反映を待つ

色々弄っちゃった自分のせいでもあるんだけど、あっちこっちにキャッシュが残って即時反映されないことがある。そこから焦ってまた弄るとまーた待つことになりかねないんで、やることやったら暫く待つ。待ってみて更新かけてもダメだったら見直す。

まとめ

なーんかやりづらいね。道理っぽい気もするけどね。でもまあ、口説き落とせる理屈があるならなんとかなるよっていう、それを通さないパッションで返されたら戦わないといけないけど。まあ、なんとかなります。

コメント

タイトルとURLをコピーしました