プログラム最終更新日:2016/10/03ラムネグから一言:寝る前に読むとくだらなすぎて逆に寝れると好評なすごい適当なブログをこっちではじめてます.トップページのみリダイレクトするにはあるURLにアクセスされたときに自動で他のURLに飛ばすことができます。この機能を301リダイレクトといい、主にサイトを移転したときやサイト内で部分的にURLを変更した際にSEO対策のために用いられます。この301リダイレクトをすることでgoogleが行っているページごとの評価(この評価を元に検索結果の順位が決まります)を受け継ぐことが出来るといわれてます。301リダイレクトにはいくつか方法があるのですが、中でもhtaccessというファイルを使って行う301リダイレクトがgoogleの推奨方法となっています。今回この301リダイレクトでトップページ(このサイトでいうとhttps://blog.dododori.com/)のURLからのリダイレクトの設定に手こずりましたので、同じような方の解決の糸口になればとこの記事を載せておきます。末尾に「△△.html」等がないトップページからのみ301リダイレクトする方法です。(末尾に「△△.html」がある場合は記事下部に載せています。)トップページ以外のほかのURLではリダイレクトせずそのまま表示します。onこれは今から301リダイレクトの機能を使いますよ~。宣言している部分です。(2行目)RewriteRuleよく見ると1「^$」と2「http://○○.com/」とそれから3「[R=301,L]」の3つの部分に半角スペースを挟んで分かれています。1のURLでアクセスされたら、2に飛ばして!(301リダイレクト)という指定をしています。3の部分はリダイレクトの方法を指定しています。「^」のニコチャンマークの目の部分と「$」についてです。これは今からURLの記述を始めるよ!という宣言の「^」とこれでURLの記述を終わるよ!という宣言文字「$」です。(正確には正規表現というものでURLの記述をする時の開始記号と終端記号となっています。)ちなみに「^」の記号、キャレットと読みます。通常は「^○○\.html$」のように、始まり文字と終わり文字の間に調べたいURLを記述します。「^$」はどういう意味になるのでしょうか。始まり文字と終わり文字の中身がありません。中身がない、ということでこれは「空」だったら2に飛んでくれという指定になります。後述になりますが1の値はhtaccessを置いたフォルダの位置を基準に考えますので、「http://○○.com/△△.html」の「http://○○.com/」についてはすでにURLを指定したものとして処理されています。トップページでは「http://○○.com/」の後ろになにも存在しないので今回のように「^$」中身がなかったら、という指定になります。1に正確なURLを書かなくていいの?RewriteRuleの1についてはhtaccessファイルの置かれているフォルダからのパスを書けば動くようになっています。「http://○○.com/」の部分は記述しなくてもあるとして処理されるため、その後ろに続く、例えばindex\.htmlの記述だけでURLを指定する事ができます。例で出てきた「index\.html」の「\」って何?「\」はエスケープ文字といいます。後ろに続く記号をただの記号として処理してください、とお願いするものです。今回の場合「\」の後ろには「.」があります。この「.」は特殊な文字で、エスケープ文字をつけなければ、本来のドットの意味ではなくなってしまうためエスケープ文字「\」をつけています。パソコンによって「\」は円マークだったり逆スラッシュに見えたりしますが、おなじ物なので気にしないで大丈夫です。[R=301,L]で301リダイレクトできます。URL末尾に「△△.html」があるとRewriteRuleの1に書くことができるのですが、URL末尾に何もない場合は1に書くことが分からなくなってしまい今回はまってしまいました。参考になればさいわいです。