【Web制作者必須!】リダイレクトの設定方法をご紹介!
WEB制作
【Web制作者必須!】リダイレクトの設定方法をご紹介!

こんにちは!なかしです。

サイト運営をしていると、旧いサイトから新しいサイトへお引越しをすることがあるのですが、その際のURL転送処理のことをリダイレクトといいます。

web業界で働く上で必須の知識になるので、今回はその方法についてご紹介します!

リダイレクトの種類

リダイレクトは301リダイレクト302リダイレクトの2種類があり、それぞれ下記のようにな転送期間によって使い分ける必要があります。

  • 301リダイレクト・・・サイト移管などで旧サイトから新サイトへ永続的に転送する場合
  • 302リダイレクト・・・サイトの改修などでメンテナンス用のページに転送する場合

リダイレクトの方法

では、早速リダイレクトの方法について見ていきましょう。

.htacsessファイルでリダイレクト

SEO的に一番推奨されているリダイレクト方法で、下記の手順で.htacsessを編集して設定します。

①テキストエディタを使い、任意の名前でテキストファイルを作成
②「.htacsess」という名前に変更(初めから「.htacsess」という名前でファイルを作成できないため)
②ファイル内にリダイレクトのコードを記述
③FTP接続でリダイレクトさせたいファイルと同じ階層に「.htacsess」ファイルをアップする

よく使用するコード

◆古いページから新しいページへのリダイレクト

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

 

RewriteEngine On・・・URLの書き換えを行うエンジンを起動しますの意
RewriteRule・・・この記述でURLの書き換えますの意
[L,R=301] ・・・『L』はこの処理はここで終わりという意味で、『R=301』は「301リダイレクトをしなさい」という指定
 ※『R』だけだと302リダイレクトになる

 

◆wwwありからwwwなしへのリダイレクト

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

 

RewriteCond・・・URL書き換えを行うルールを指定

 

◆httpからhttpsへのリダイレクト

RewriteEngine on
RewriteCond %{ HTTPS} off
RewriteRule ^(.*)$ https://%{ HTTP_HOST}%{REQUEST_URI} [L,R=301]

 

javascriptでリダイレクト

転送前の旧い方のhtmlファイル内にjavascriptを記載してリダイレクトする方法です。

コードはこちら↓

<script type="text/javascript">
    setTimeout("link()", 0);

    function link() {
        location.href = '転送先URL';
    }
</script>

 

settimeout はリダイレクトさせる時間を指定します。
時間が長いとサイトの離脱につながるので、 基本的には即座に転送する0にしておきましょう。

meta refreshを使ったリダイレクト

htmlのheadタグの中にコードを書いてリダイレクトする方法です。

一番簡単ですが、google非推奨なのでhtacsessでもjavascriptでも不可能な場合の最終手段として使うようにしましょう。

コードはこちら↓

<meta http-equiv="refresh" content="秒数;URL=URL">

 

contentプロパティの値「秒数」に、ユーザーがページを開いてからリダイレクトするまでの秒数を記述し、 URLプロパティの値「URL」の部分に転送先のURLを指定します。

最後に

基本的に.htacsessファイルでのリダイレクトが推奨されていますが、使用しているサーバーによってはhtacsessが使えないこともあるため、次の手段としてjavascript、meta refreshを使うようにするのが良いかと思います。

web業界にいる方はサイトのリニューアルやドメイン変更などで何かと使う機会も多いので、ぜひ覚えておきましょう!

レジットに相談してみる
この記事をシェアする
一覧へ戻る