.htaccess でトップページから301リダイレクトする方法

アイキャッチ画像 WEB開発

.htaccess というWEBサーバーをコントロールするファイルを使って、トップページにアクセスされた時に別のページに自動で飛ばす方法を説明した記事になります。

301リダイレクトとは

あるページにアクセスがあった際、自動的に別のページに飛ばすことができるのが 301リダイレクトになります。主にサイト移行でドメイン変更した時や、既存サイト内で部分的に URL を変更したい時に SEO 対策として有効な方法です。

301リダイレクトの方法は .htaccess の他にもいくつかありますが、google から今まで得てきたページの評価をそのまま受け継ぐことができ(検索順位そのまま)、301リダイレクトの方法として .htaccess を使うことも google から推奨されているようです。

トップページのみ301リダイレクトする方法

  • 末尾に .html 等がないトップページからのリダイレクト方法
  • 末尾に .html 等があるトップページからのリダイレクト方法

自分のサイトのトップページを表示させた時に、アドレスバーでどのように表示されているか確認してみて下さい。

トップページ末尾に .html がある場合

RewriteEngine on
RewriteRule ^$ http://sample.com/ [R=301,L]

コードの説明

RewriteEngine on

301リダイレクト機能を使う宣言になります。

RewriteRule

^$ http://sample.com/ [R=301,L] の3つに分けて考えることができます。
^$ にアクセスされたら http://sample.com/ に飛ばし(リダイレクト)、リダイレクトの方法は [R=301,L] だよという命令になります。

^$ の意味

「^」「$」こちらの記号は正規表現と呼ばれるもので一致するかしないか調べる時に使います。

通常は ^sample\.html$ のように開始記号と終端記号で挟み、この中にURLを入れて記述しますが、今回のようにトップページに .html が無い場合は「空」という意味で何も指定していません。「空」だったら301リダイレクトの意味になっています。

\マークの意味

「\」こちらの記号はエスケープ文字といいます。\の後ろに続く記号はただの記号として処理をする、というものになります。今回の例では「\」の後ろに「.」がありますが、「.」は特殊文字で、エスケープ文字を付けないと本来の「.」の意味になってくれません。

また、PC環境によって「\」や「\」と表示されますが、どちらが表示されても意味は変わらないので気にしなくて大丈夫です。※PCのフォントに影響されているだけ。

トップページ末尾に .html がある場合

トップページ末尾に .html などがあればそのまま記述します。

RewriteEngine on
RewriteRule sample\.html http://sample.com/sample.html [R=301,L]

コードの説明

RewriteEngine on

301リダイレクト機能を使う宣言になります。

RewriteRule

sample\.html http://sample.com/sample.html [R=301,L] の3つに分けて考えることができます。
sample\.html にアクセスがあれば http://sample.com/sample.html に飛ばし(リダイレクト)、リダイレクトの方法は [R=301,L] だよという命令になります。

まとめ

WordPress で作成したサイトでも使えますが、ここでご紹介した方法を使うと記事を書いた時のプレビューが上手く表示されませんでした。WordPress では固定ページをフロントページにする方法がよく使われているのでそちらも参照してみると良いかもしれません。

コメント

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