2015/6/22

.htaccessを使った301リダイレクト記述方法

区切り線

301

最近、会社の求人サイトのリニューアルに少し携わらせてもらっています。
ある程度SEOにも強くなるように、サイト構造なんかを僕が考えてコンテンツマトリクスやらサイトマップを書き出していたんですが、そういえば旧ページからリダイレクトしないといけないですね!

というわけで、今回はサイトリニューアル時には必ず設定しておきたい、301リダイレクトの方法について紹介したいと思います。

301リダイレクトとは

301redirect
301リダイレクトとは、ドメインやURLが変更された場合に用いられる、転送処理のことを言います。
よく似たものに「302リダイレクト」と呼ばれるものがありますが、そちらは「一時的な転送」で、301リダイレクトは「恒久的な転送」となります。

WEBサイトのリニューアルなどで、URLが変わった時は、301リダイレクトを設定しておくことで、ある程度検索エンジンからの評価を引き継ぐことができます。

301リダイレクトが必要になるケース

  1. ドメインが変更された
  2. ディレクトリ名、ファイル名が変更された
  3. パーマリンクが変更された

301リダイレクトの書き方

まず、「.htaccess」というファイル名のテキストファイルを用意します。
「Terapad」や「メモ帳」といったテキストエディタを開き、ファイル名を「.htaccess」に設定。
ファイルの種類を「すべてのファイル」にすることで.htaccessのファイルが出来ます。
(一度.txtで作成してから、後でファイル名から拡張子を削除する方法でもOKです)

次に、301リダイレクトの内容を記述していきます。

ページ単位のリダイレクト

特定のページから特定のページにリダイレクトさせる場合は、次のように記述します。

RewriteEngine on
RewriteRule ^old_page.html$ http://www.url.com/new_page.html [R=301,L]

「old_page.html」にアクセスがあった場合に、「http://www.url.com/new_page.html」へ301リダイレクトさせる、という記述です。
同一ドメイン内でURLが変わった場合でも、別のドメインのURLであっても指定が可能です。

ディレクトリ単位のリダイレクト

RewriteEngine on
RewriteRule ^old_dir(.*)$ /new_dir$1 [R=301,L]

「old_dir」というディレクトリにアクセスがあった場合、「new_dir」にリダイレクトする、という記述です。
これはディレクトリ名が書き換わるだけなので、ファイル名が変更されている場合には404エラーになってしまうので、注意が必要です。

wwwあり・なしの統一

SEO対策をするのであれば、検索エンジンからの評価を統一させるためにも、wwwのあり・なしは必ず設定しておきましょう。
これを「URLの正規化」と呼びます。

wwwありに統一

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(url\.com)(:80)? [NC]
RewriteRule ^(.*) http://www.url.com/$1 [R=301,L]

「http://url.com」にアクセスされたら「http://www.url.com」にリダイレクトする記述です。

wwwなしに統一

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.url\.com)(:80)? [NC]
RewriteRule ^(.*) http://url.com/$1 [R=301,L]

「http://www.url.com/」にアクセスされたら「http://url.com/」にリダイレクトする記述です。

index.html(phpなしの統一

wwwのあり・なしの統一と同じように、こちらもURLの正規化です。
基本的には「なし」を使うことがほとんどなので、そちらのみを紹介します。
「http://www.url.com/」なのか、「http://www.url.com/index.html(php)」なのかを設定します。

index.htmlなしの統一

RewriteEngine on
RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ http://url.com/$1 [R=301,L]

「http://url.com/index.html」にアクセスがあった場合、「http://url.com/」にリダイレクトする記述です。
phpファイルの場合は「index.php」と変更して下さい。

アップロード

.htaccessの記述が出来たら、ファイルをサーバーにアップロードしましょう。

アップロード先は、どの範囲に.htaccessの設定を適用させたいかによって異なります。
.htaccessの有効範囲は、.htaccessをアップロードしたディレクトリと、その子階層であるサブディレクトリということです。

WEBサイト全体に適用する場合

htaccess アップロード
適用される範囲は、WEBサイト全体です。

WEBサイト全てに.htaccessの設定を適用させる場合、そのサイトの最も上位のディレクトリ(トップページのある階層)に.htaccessをアップロードしてください。

特定ディレクトリにのみ適用する場合

htaccess アップロード
適用される範囲は、.htaccessを設置したディレクトリ以下全てです。

.htaccessを適用させたいディレクトリに.htaccessをアップロードして下さい。

301リダイレクトの注意点

サイトのリニューアルなどでドメインやURLが変更される際には是非とも設定しておきたい301リダイレクトですが、いくつか注意点があります。

  • .htaccessが使えないサーバーでは使用できない
  • スパムリンク等の悪い評価も引き継いでしまう
  • 必ず、該当するページにリダイレクトをしなくてはいけない

他にもまだまだありそうですが・・・

まず、.htaccessが使えないサーバーでは使えないということですね。
これはサーバーの問題なのでサーバーを変更するか、「メタリフレッシュ」という代替手段を使うしかありません。

次に、スパムリンクを引き継いでしまう件です。
301リダイレクトをすることによって、リダイレクト元のページに対しての検索エンジンからの評価だったり被リンク効果などが、リダイレクト先に引き継がれます。
それはプラスの効果もマイナスの効果も引き継がれるということです。
基本的に、まっとうにWEBサイトの運営をしていれば特に気にする必要はないのですが、過去にリンク購入などスパム行為をしていてペナルティが与えられている場合、検索エンジンからのペナルティ毎リダイレクト先に引き継がれてしまいます。
そのため、リダイレクト元にペナルティがある場合はリダイレクトは避けた方が無難でしょう。

最後に、リダイレクト先の話です。
ついつい、面倒臭がって全てのリダイレクト先をリニューアル後のサイトのトップページに指定しがちですが、リダイレクト元のページの内容に該当するページにリダイレクトするようにして下さい。
該当するものがなければトップページで構いませんが、基本的には該当ページへリダイレクトをする、と覚えるようにして下さい。

  • このエントリーをはてなブックマークに追加

区切り線

コメントをどうぞ

メールアドレスが公開されることはありません。