簡単!301リダイレクトする為の.htaccessファイルの記述方法

htaccessファイルの301リダイレクト設定方法

ウェブサイトのリニューアルなどでドメインやページURLが変更になった場合、放置しておくと404エラーになりユーザーに対して不親切であるだけでなく、検索エンジンに対してもSEO的に良くありません。ページURLを変更した場合は旧URLから新URLへと301リダイレクトを使用して転送させる必要があります。

301リダイレクトとは?

301リダイレクトとは、ドメインやURLが変更された場合に用いられる、恒久的な転送処理のことを言います。
ウェブサイトのリニューアルなどで、URLが変わった時は、301リダイレクトを設定しておくことで、ある程度検索エンジンからの評価を引き継ぐことができます。

SEO的に重要な301リダイレクト

301リダイレクトを使用すれば、旧URLのページランクが新しいURLにも引き継がれ、サイトの評価を保つことができます。順位下落の可能性を防ぐためにも、適切な301リダイレクトでページ転送することが大切です。

ドメイン変更などで新旧のコンテンツが重複している場合は、Googleからペナルティを受けてランキングに悪影響を及ぼす場合もあるので、新URLへの301リダイレクトは必ず行う必要があります。

301リダイレクトと302リダイレクトの違い

301リダイレクトは、恒久的にURLを転送すると言う意味で、リダイレクト元のページは参照されなくなります。ドメインを変更したり、リニューアルでページURLが変更になった場合は301リダイレクトを使って転送します。

一方の302リダイレクトは、一時的にURLを転送すると言う意味で、期間限定で一時的にリダイレクトしたいときはこちらを使って転送します。

.htaccessファイルで転送させる

.htaccessファイルに必要な記述をすることで301リダイレクトの自動転送を行うことが出来ます。

.htaccessとは?

.htaccess(エイチティアクセス)とは、ウェブサーバーで使用されているApacheをコントロールする設定ファイルの1つで、転送させたりパスワードをかけたり、アクセス制限をかけたりすることが出来ます。

.htaccessファイルの場所

FTPソフトなどを使ってサーバーにアクセスして、一番上の階層(ルートディレクトリ)に.htaccessファイルがないか確認してください。

.htaccessファイルがない場合は、テキストエディタで新規ファイルを作成します。

既に.htaccessファイルがある場合は、既存のファイルをダウンロードして、記述を追加します。CMSを使用していたり、何らかの他の設定が記述されているので、上書きしないように注意してください。

ドメイン名が変わる場合は、転送元(旧URL)のサーバー内の一番上の階層(ルートディレクトリ)に.htaccessファイルを置く必要があります。

.htaccessファイルの記述方法 301リダイレクト

新規で.htaccessファイルを作成する場合は、テキストエディタでhtaccess.txtというファイルを作り、必要事項を記述していき、FTPでサーバーにアップロード後に、ファイル名を.htaccessに変更します。

既に.htaccessファイルがある場合は、HTMLなどが編集できるエディタであれば.htaccessを開くことは可能ですが、開けない場合は、一旦ファイル名をhtaccess.txtに置き換えてから編集してください。

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

旧URLから新URLにページごとに転送設定したい場合の記述方法。
例えば、旧URLがold.html、新URLがnew.htmlに変更になった場合は、以下のようになります。

RewriteEngine on
RewriteRule ^old.html$ http://www.example.com/new.html [R=301,L]

※新URLの部分はhttpまたはhttpsから始まるフルパスで記述するので、ドメインが変更になった場合も同じ記述で大丈夫です。

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

旧ディレクトリから新ディレクトリに転送したい場合の記述方法。 例えば、旧ディレクトリがold-direct、新ディレクトリがnew-directだった場合は、以下のようになります。

RewriteEngine on
RewriteRule ^old-direct(.*)$ /new-direct$1 [R=301,L]

※新旧ディレクトリの下層URLが同じ場合のみ、下層URLにも有効。

ドメイン全体のリダイレクト設定

旧ドメインから新ドメインに転送したい場合の記述方法。

RewriteEngine On
RewriteCond %{http_host} ^www.old.com
RewriteRule ^(.*) http://www.new.com/$1 [R=301,L]

※新旧ドメインの下層URLが同じ場合のみ、下層URLにも有効。

wwwありなし設定をする場合

過去の記事を参照ください ⇒ SEO対策!www「有り/無し」を統一してhtaccessファイルで転送させる方法

最後に転送されているか確認する

FTPなどで.htaccessファイルをサーバーにアップロードしたら、実際に転送されているか確認しましょう。

もし、転送されていない場合は、もう一度記述ミスはないかチェックします。その他の原因としてはファイルの文字コードやそもそも.htaccessファイルが使えないサーバーの可能性がありますので、各サーバー会社に確認するのが確実です。