はてなブログで「wwwなし」を「wwwあり」にリダイレクト(転送)させる方法
はい、タイトル通り「はてなブログでwwwなしをwwwありにリダイレクトさせる方法」を解説したいと思います。
似たような記事は既に多数ネット上にあり、何番煎じだよって我ながら思いますが……しかしググってみると大抵は「お名前.com」の転送設定を利用した方法です。
「じゃあお名前.com以外のはてなブロガーはどうすりゃええねん!(絶望)」ってなりますよね?(私はなりました)
ひとつの方法としてはドメイン管理会社をお名前.comに移管することです。ドメイン管理会社のお引越しですね。そうすればお名前.comの転送設定を使ったリダイレクトが利用できるかと思います。
今回記事にするのは、お名前.com以外のドメイン管理会社を利用し続けるパターンです。
このブログは「ムームードメイン」を利用しているので、ムームードメインを例にしたいと思いますが、おそらく他のドメイン管理会社でも同様の方法でいけるとおもいます。
※ご参考までに私が行った方法を書きますが、くれぐれも自己責任でお願いします※
なお予め書いておくと、コストを抑えているとはいえお金がかかる方法です。一切費用をかけたくない方は別のやり方を探してみてくださいね。
そもそもなんでリダイレクト設定する必要があるの?
はてなProで独自ドメインを設定している人も多いと思うんですが、はてなブログではサブドメインでの紐付けが推奨されています。
サブドメインを使用しないでブログを運用すると、ドメイン名の仕組み上、トラブルの原因になることがあります。取得したドメインの前に、必ずサブドメイン(wwwやblogなど)を付加してください。
はてなブログを独自ドメインで利用する - はてなブログ ヘルプ より
はてなブログにしか使用しないドメインであっても、たとえば当ブログなら「https://gith.xyz/」ではなく「https://www.gith.xyz/」にせざるを得ないわけです(実際www無しでもできるっぽいですがはてな側で非推奨なのであんまりおすすめはしません)。
レンタルサーバにWordPressを入れて運用したりする場合は自動的にwwwありがwwwなしへリダイレクト(転送)されるようになってることも多いです。
問題なのが、WP感覚で「ドメイン名でアクセスすれば正しいURLに勝手に転送されるだろ~」と「https://gith.xyz/」や「http://gith.xyz/」、「gith.xyz」といったURLにアクセスした際、「ページが見つかりません(404)」となってしまうことです。記事を読もうとしてくれていた方でも、これでは帰ってしまいますよね。
またGoogleなどに誤って認識され「https://gith.xyz/」と「https://www.gith.xyz/」という2つのURLが存在することになっちゃう危険性もあります。
そこで、「https://gith.xyz/XXX」や「http://gith.xyz/XXX」、「gith.xyz/XXX」といったURLにアクセスした際、"正しい"URLである「https://www.gith.xyz/XXX/」に自動的に転送されるようにすることで、機会損失を防ごう、というのが転送設定する目的その一。
Search Consoleを使って「"https://www.gith.xyz/"と"https://gith.xyz/"は同じサイトだよ。ゴーストインザヘッドの正しいURLはwwwありの方だよ」とGoogleに教えてあげるのが目的その二です。
それぞれに分けて解説したいと思います。
.htaccessを使ったリダイレクトのやり方
レンタルサーバを借りる
まずはレンタルサーバを契約しましょう。別のサイトを運営している方など、すでにレンタルサーバのアカウントを持っている方ならそれを使っても大丈夫です。
別にVPSでもいいですが、やること的に格安共用レンタルサーバで充分だと思います。
私は月額200円弱、年間でも2000円ちょっとの、「XREA」というレンタルサーバを契約しました。これを使って説明したいと思います。
記事書いてて気付いたんですけど「XREA(191円/月)」より「バリューサーバー(167円/月~)」のが安いですね……。年間300円弱の差ですが少しでも安くしたい方はバリューサーバーの一番安いプランのほうがいいかもです。
ロリポップ!のレンタルサーバも初期費用に1500円かかりますが月額100円だし長く使うならこっちの方がよかったかも……私使ってるのムームードメインだし……。
ま、まあ正直サーバは「.htaccess」が動けばどこだっていいです。私はもうXREAを2年分前払いしちゃったのでこのまま強行します。
なお下記の方法は無料共用レンタルサーバでやることも(たぶん)できます、あります、が……
たとえば数ヶ月おきに契約更新したり、アクセスがないのでアカウント消去のリスクを抱えたまま運用しなきゃいけないことを考慮し、「まあ月200円くらいならいいか…(諦め)」とXREAを契約しました。
ちなみにXREAには無料プランが有り、私も最初はリダイレクトさえ動けばいいし無料プランでいいじゃんと思っていたのですが、よくよく読んでみたら「広告コードを全てのページで視認できる状態にして設置」することが利用条件でした。
これに沿わなきゃアカウント凍結するよとのことで、つまりアクセス即転送のために使うのはNGっぽいです(まあそりゃそうだよね…)。いやわかりませんよ? 実際はセーフなのかもしれませんが凍結リスクは背負いたくないなと思って大人しくお金払いました。
「wwwなし」のドメイン設定をレンタルサーバと紐付ける
まずはレンタルサーバのIPアドレスを調べましょう。
XREAの場合、コントロールパネル内の「IPアドレス」ってとこなどに借りたサーバのIPアドレスが表示されてます。
こいつをメモるか、タブを開いておきましょう。
次にドメインの管理画面にログインします。
ムームードメインの場合、サイドバーのドメイン操作>ムームーDNS>処理>変更と進むと「カスタム設定のセットアップ情報変更」画面へ遷移するかと思います。
「サブドメイン」欄は空白
「種別」はA
「内容」にサーバのIPアドレスを入力します
これで「wwwなし」のドメインがレンタルサーバと紐付きます。
※なお私が試した際は反映は一瞬でされましたが、時間がかかる場合もあります。
次に再びレンタルサーバの管理画面に戻ります。
XREAの場合、サーバの新コントロールパネルにログイン>メニューの「ドメイン設定」から「ドメインの新規作成」を選択します。
ドメイン名(FQDN)にwww無しのドメインを入力し、「ドメイン設定を新規作成する」でOK。
これで「www無し」はレンタルサーバの方にアクセスされるようになりました。
.htaccessでリダイレクト設定
次にレンタルサーバの中に.htacessファイルを作成して、「www無し」のアクセスを「www有り」に転送するよう設定します。
ここで操作ミスるとアクセス不能になったりするので気をつけてください。
まずはFTPからドメインのトップディレクトリを開きましょう。
XREAの場合ですと、サーバの新コントロールパネルにログイン>メニューの「サイト設定」>追加したドメインのWebFTPクライアント(「アクション」欄の雲のマーク)を開きます。
するとこんな感じの画面になります(レンタルサーバによって画面は色々です。なおWebFTPじゃなくてFTPソフトでも大丈夫です)。
.htaccessファイルが存在しない場合、「ファイル作成」から.htaccessファイルを作成します(既に存在する場合はコードを追加します)。下記内容をコピペして、ファイル名を「.htacess」(ドットを忘れずに!)にして保存しましょう。文字コードはUTF8が無難です。
「wwwなし」でアクセスしてきたのを強制的に「wwwあり」へ301リダイレクトする内容。
RewriteEngine On RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
「http」でのアクセスを「https」に転送する処理も念のため入れときたい場合はこう(これははてな側でやってくれるから必要ないかも)。
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
FTP触ったことない人だと難しそうに思えるかもしれませんが、作業的には1分もかかりません。
「.htaccess」を保存したら、「wwwなし」でアクセスしたのが「wwwあり」にちゃんと転送されるか、トップページや各記事のURLで検証してみましょう。
問題がなければ、ここまでで目的の9割は達成されました。
Search Consoleからwww有り無しを統一する
「wwwなし」のアクセスが「www有り」に301リダイレクトされるようにさえなれば、ぶっちゃけその段階で終わりにしても大丈夫だと思います。
心配性の方は、念のためGoogle先生に「正しいURL」を教えてあげましょう。
Search Consoleから「サイトの設定」を行う
※この設定は2019年2月現在、旧Search Consoleでのみ行なえます。
使用するドメイン名を設定すると、以後 Google がサイトをクロールし、インデックスを更新するときにその情報が使用されます。たとえば、使用するドメインを http://www.example.com と指定したものの、Google が検出したサイトへのリンクが http://example.com という形式の場合、Google では http://www.example.com を使用してそのリンクをたどります。また、表示される URL はウェブマスターによる設定を考慮して決定します。使用するドメインを設定しないと、ドメインに www を含むバージョンと www を含まないバージョンが別のページへの異なる参照として処理されることがあります。
使用するドメインの設定(www の有無) - Search Console ヘルプ より
というわけで、Googleが「wwwあり」と「wwwなし」を異なるページとして参照してしまうと色々と不都合があるので、正しいバージョンを登録してGoogleに教えてあげようというのがこの項の目的です。
既に多くの方が「wwwあり」の方は登録済みかと思いますが(してなかったらしてください)、https://www.google.com/webmasters/toolsから「プロパティの追加」より「wwwなし」の方も追加をしましょう。
なお、サイトのURLが「https://example.com」であっても、「http://example.com」で登録(追加)しないとうまくいきませんでした(面倒でも「http://example.com」「https://example.com」「http://www.example.com」「https://www.example.com」の全パターンのプロパティを登録しておいたほうが間違いないかも)。
プロパティの追加をしようとするとサイト所有者であることの確認が必要になりますが、ヘッダにメタタグを入れたりHTMLファイルをアップする方法は、リダイレクト設定をしていると問答無用で「wwwあり」に飛ばされるため使えません。
※なお一時的に.htaccessを削除すればHTMLファイルをアップする方法などでもその場では確認できますが、botが定期的にチェックをしているため、やがて「確認できません」にステータスが変わってしまいます。
そのため他の確認方法を取る必要がありますが、「ドメイン名プロバイダ」が一番簡単な確認方法じゃないかと思います。
Search Consoleの確認方法から「ドメイン名プロバイダ」を選択し、表示されたDNS TXT レコードまたは CNAME レコードをドメインの管理画面から追加します。
ムームードメインの場合はこんな感じ。
先ほども使ったカスタムDNS設定画面で、「サブドメイン」欄は空欄、「種別」欄は「TXT」、「内容」欄にGoogleの発行した確認コードを入れて「セットアップ情報変更」ボタンを押下するだけ。
そしたらSearch Consoleに戻って「確認」すればOK。
ムームードメイン以外でもメジャーどころのドメイン管理会社ならgoogle側でマニュアルを用意してくれているので、そんなに迷うことは無いんじゃないかと思います。
プロパティの追加ができたら、
「https://www~」のプロパティから、画面右上の方の歯車マークをクリックし「サイトの設定」を開きます。
「使用するドメイン」から「wwwあり」のやつにチェックを入れて「保存」を押下します。
これで全設定が終わりです。お疲れ様でした。
はてなブログで「wwwなし」を「wwwあり」にリダイレクト(転送)させる方法 まとめ
くぅ~疲れましたw これにて完結です!
いやほんと軽い気持ちで「せっかくだし記事にするか~」なんて思って書いたらむちゃくちゃ大変でした……。
せっかく書いたので何かの参考になれば幸いです。
なおDNS設定とか.htaccessとかいじくるのでくれぐれも自己責任でお願いしますね!
ではでは。