リダイレクトとは?301と302の設定方法

リダイレクト

リダイレクトとは

訪問者を自動的に別ページへ移動させる設定です。主に、サイト移転時に古いURLから新しいURLへ誘導する場面が多く使われています。

リダイレクトをするメリット

ページエラーが発生しないので、ユーザー離脱率を下げることができます。また、適正な設定を行うことで、古いページのSEO評価を新しいページでも引き継ぐことができます。

302リダイレクト(一時的なもの)

「サイトメンテナンスのため、一時的に別サイトを表示したい」など、一時的な移動であり、元のURLに戻る予定がある場合に使用します。

.htaccessファイルを使用する場合(Apacheサーバー)

Redirect 302 /old-urlhttp://www.example.com/new-url

PHPでサーバーサイドスクリプトを使用する場合

<?php
header("Location: http://www.example.com/new-url", true, 302);
exit();
?>

JavaScriptを使用する場合

JavaScriptを使用する場合、window.location.replaceを使ってリダイレクトを実行します。ただし、SEOの観点からはサーバーサイドでのリダイレクトが推奨されます。

window.location.replace("http://www.example.com/new-url");

301リダイレクト(永続的な設定)

永久的にURLを変更した際に使用します。SEOにおいて、リンクの評価を新しいURLに引き継ぐため、googleからは推奨されてます。

301リダイレクトに関する。google記事はこちらです。

.htaccessファイルを使用する場合(Apacheサーバー)

この例では、/old-urlにアクセスしたユーザーが永久的にhttp://www.example.com/new-urlにリダイレクトされます。

Redirect 301 /old-url http://www.example.com/new-url

もしくは、RewriteRuleを使用する方法もあります

こちらの設定では、正規表現を用いてold-urlにアクセスした場合にリダイレクトが行われます。

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

PHPでサーバーサイドスクリプトを使用する場合

このPHPスクリプトを実行すると、ユーザーは永久的に新しいURLにリダイレクトされます。

<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.example.com/new-url");
exit();
?>

まとめ

リダイレクトには「一時的なもの」と「永続的なもの」の二種類があります。

適切に設定をすることでSEO的にも効果を発揮するため、ぜひ参考にしていただけると幸いです。