どうも、くーへいです。
実は、先日こっそり、このブログの名前を変更しました。
「くーへいの技術メモ」から「フラップイズム」になりました。
ブログ名が変わっても変わらずのご愛顧をよろしくお願いいたします!
「フラップイズム」は、直訳すると「はばたくこと」となります。
ゆくゆくは洗練された技術を持ったフロントエンドエンジニア、そして尊敬されるCTOに「はばたくこと」を目指していきたいと思います。
さてさて、それに伴い、URLも「tech.birds-song.net」から「www.flapism.jp」に変更されています。
URLを変更した場合、旧URLで築いたものを全て失う・・・わけではありません。
「301」リダイレクトという手法を用いることによって、旧URLで築いたものをある程度、新URLに引き継ぐことができます。
もちろん、完璧にというわけにはいかず、引き継げないこともあります。
今回はそのあたりについて少し掘り下げて考えていきたいと思います。
「301 リダイレクト」とは?
「301 リダイレクト」は「恒久的な移転」を示すものとして規定されたものです。
「Google」や「Yahoo!」もドメインを変更した際は、「301 リダイレクト」を使用することを推奨しています。
「301 リダイレクト」を簡単に言葉で表すと、旧ドメインにアクセスした検索エンジンやブラウザに対して、
「example.comというドメインはexample.jpというドメインに移動したよ!もう戻っては来ないよ!」
ということを伝えていると思ってください。
「301 リダイレクト」の記載方法
「301 リダイレクト」はサーバーのルートに「.htaccess」ファイルを作成し、以下のように記載することで実現できます。
もちろん、移転元のサーバーに置かないと意味がありません。
下の例だと、「tech.birds-song.net」に置かれている必要があります。
RewriteEngine On RewriteCond %{HTTP_HOST} tech.birds-song.net [NC] RewriteRule ^(.*) https://www.flapism.jp/$1 [R=301,L] # BEGIN WordPress RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress
上の記述例は、このサイトの移転の際に記載したもので、「WordPress」のサイトを丸ごとリダイレクトさせる設定になっています。
「# BEGIN WordPress」から「# END WordPress」までは「WordPress」が自動で生成するもので、これを変更することはやめておいた方がいいでしょう。
それでは、それ以外の部分について、詳細を見て行きます。
「RewriteEngine On」という部分は、読んで字のごとく、リライトエンジンの機能を起動するものです。
本来、「RewriteEngine On」は1つの「.htaccess」で1つのみあれば十分ですが、「WordPress」が自動生成した文章の前に書きたい、かつ自動生成の文章は変更しないという考えの下で不自然ですが、2度宣言しています。
当方のサーバーでは2度宣言しても問題は発生していません。(※必ず問題が発生しないとは限りませんので、ご使用の際は注意してください)
「RewriteCond」は「どういうときにリライトするのか」という条件を指定します。
「RewriteCond テストする変数 パターン オプション」と記載します。
「%{HTTP_HOST}」は自身のホストを示しますので、アクセスされたホストが「tech.birds-song.net」だったらリライトする、という条件を示したことになります。
「[NC]」は大文字・小文字を区別しない、というオプションです。
「RewriteRule」は「どこにリライトするか」を指定します。
「RewriteRule 正規表現パターン 置換パターン オプション」と記載します。
「^(.*)」は記号1つ1つに意味があるのですが、このように記載することですべてのURLを示すことになります。
「https://www.flapism.jp/$1」は、「^(.*)」で置き換えた文字を「$1」の部分に当てはめる、という意味になります。
例えば、「http://tech.birds-song.net/123/」というURLがあると、「123/」が「^(.*)」にあたり、「https://www.flapism.jp/123/」に書き換えられることになります。
「[R=301,L]」は「R」がリダイレクトを示し、「301」が「永久的」なリダイレクトを示します。「L」は書き換えられたURLはこれ以上書き換えないことを示します。
「.htaccess」の書き方はとても奥が深く、すべてを説明すると本が出来上がります。
ここでは割愛させていただきます。
「301 リダイレクト」で引き継げること
・検索サイトの「インデックス」(引き継ぐというよりは、すぐに新たなURLにインデックスが張られます)
・「Google」の「PageRank」(100%ではなく、80%という話もあります)
・被リンク(上記同様、80%程度という話もあります)
・「Google Analytics」の履歴等
検索エンジンに対しては「301 リダイレクト」が有効な手段であることがわかりますね。
「301 リダイレクト」で引き継げないこと
・ソーシャルボタンの数字(”いいね”や”ツイート数”など)
・「ウェブマスターツール」(移転元がサブドメインの場合のみ)
ソーシャルの数字は軒並み引き継がれません。
「いいね」の数はサイト移転後は一瞬引き継いだように見えますが、数日経つとリセットされるようです。
「ウェブマスターツール」は検索に関するステータスを調べることができますが、カッコ書きにも書いた通り、移転元がサブドメインの場合は引き継げません。
と、いうのも、「ウェブマスターツール」には「アドレス変更」というツールがあり、これを使用することで引き継ぐことが可能ですが、移転元がサブドメインの場合のみ使用することができないのです。
もし、移転元がルートドメインだった場合は引き継げる可能性があります。
引き継げることや引き継げないことは、ここに記載したもの以外にもあるかもしれません。
また、時代とともに変わっていくことも予想されますので、ご注意ください。
まとめ
ドメイン変更によってさまざまなものを失います。
しかし、わかりやすいドメインであることはユーザビリティの向上にもつながりますし、何よりサイト運営のやる気が変わります!変わるはずです!
失うことを恐れずに、「はばたくこと」をお勧めしますよ!