テクいというかそれほどでもないというか。
状況
とりあえず、以下の流れを踏む。
- お名前.comでドメインを取得
- お名前.comでサーバーをレンタルしてメールとサブドメインを作成
- makeshopに独自ドメインを適用したい
- ネームサーバー設定ができないから詰む
サブドメインはAレコードを指定するだけでいいんだけど、独自ドメインの適用はネームサーバーをいじらないといけない。ネームサーバーはWEBサーバーに設定してて、サブドメインとかメールアカウントに紐付いてるからいじれない。で、ネームサーバー設定用にIPが表示されてたのでAレコードに突っ込んで申請したけど弾かれた。
ひらめき
「www」つければいいじゃん
WEBサイトを作るにあたって、ドメインの「www」の有無どうするよっていう話は昔からあった。「www」だけはなぜかサブドメインじゃなくて独自ドメインとイコールの扱いになってる。だけど、そんな認識以外は通常のサブドメインと何ら変わらない。これだ。
で、念のために調べてみたらやっぱり世間的に「www」の有無は何にも影響しない。手打ちが4文字増えてめんどくさいってだけ。
「www」有りをmakeshopのやつに設定して、「www」無しはwebサーバーの方で「www」有りに転送しちゃえばいいよね。それをやる。
「www」つけたら殺すって言われたら詰む方法だから注意。
やっていく
ざっくりと以下の流れになる。
- makeshop管理画面でDNSレコード設定内容の確認
- 「www」のDNSレコードを設定
- makeshop管理画面でサブドメイン「www」を設定
- 「www」無しのディレクトリに.htaccessを設置
- 反映を待つ
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」に転送されるように仕込む必要がある。
反映を待つ
色々弄っちゃった自分のせいでもあるんだけど、あっちこっちにキャッシュが残って即時反映されないことがある。そこから焦ってまた弄るとまーた待つことになりかねないんで、やることやったら暫く待つ。待ってみて更新かけてもダメだったら見直す。
まとめ
なーんかやりづらいね。道理っぽい気もするけどね。でもまあ、口説き落とせる理屈があるならなんとかなるよっていう、それを通さないパッションで返されたら戦わないといけないけど。まあ、なんとかなります。
20220523追記
上記内容でうまいこと行ってたんですよ、SSLの申請も通りました。
SSLを更新し忘れて再申請した時にNGが出た。通常のSSLみたく、wwwなしでも設定されてないとだめだって。メールを介して個別にCNAMEとAレコードの指定がきた。これまでの間に変わったのか、もとからそういうものだったのか。とりあえずサポートが公式に案内してくれるならそれにならった方がいい。
rsサーバーは紐づけたドメインのDNSをサブドメインに限らず指定できるので融通は効く。
以下、現環境と指示内容
- ドメイン:お名前.com
- サーバー:rsサーバー
- wwwあり:CNAME*1
- wwwなし:Aレコード*2
wwwありはAレコードとCNAMEが共存できないので、既存のAレコードを削除してCNAMEを登録。
wwwなしは既存のAレコードを削除して2つ登録。
これで大丈夫と思うけど様子見。
コメント