リダイレクトとは

ホームページで言うリダイレクト「redirect」とは、あるホームページへリンクが貼ってあるとき、今まで通りその貼ってあるページへ飛ぶのではなく、別のホームページへ転送(リダイレクト)させる機能のことです。
ホームページをAからBへ移転させるとき、ただの「こちらへ移転しました」リンクだけでは問題があります。
検索エンジンから見ると、同じ内容のページが2つできていると判断されてしまい、ミラーサイトとしてペナルティを受ける可能性があります。
ペナルティを受けると、サイトの順位が下がるなど、検索されにくくなるなどの影響を受けます。

リダイレクトさせる方法

 「.htaccess」というファイルをテキストエディタ(メモ帳、tarapad、DreamWeaverなど)で作成し、これをFTPサーバにアップロードすることで、リダイレクトすることができます。
なお、OSがWindowsの場合は「.」で始まるファイル名を使用することはできません。
そのため、a.htaccessのような別名にして作成し保存後、FTPサーバにアップロードした後に、サーバー上でファイル名を.htaccessに変更する必要があります。

さて、「.htaccess」というファイルの中には、最初は何も書かれてない状態ですので、以下のような記述をします。

Redirect permanent /aaa.html http://new-homepage/aaa

この記述の意味は、「リダイレクトしたいのは、/aaaというディレクトリ部分から、http://new-homepage/aaaの部分だよ」ということです。

これを、各ページ(各ディレクトリ)ごとにリダイレクトをかける必要がありますので、実際の記述のイメージは以下のようになります。

  1. Redirect permanent /aaa.html http://new-homepage/aaa/
  2. Redirect permanent /bbb.html http://new-homepage/aaa/bbb/
  3. Redirect permanent /ccc/ http://new-homepage/aaa/ccc/
  4. Redirect permanent /ddd/ http://new-homepage/xxx/ddd/
  5. Redirect permanent /日本語/ http://new-homepage/eee/

ここで注意点なのですが、私がミスしてどうしてもリダイレクトできなかった事例をご紹介します。

上記例の5番目のRedirect permanent /日本語/ですが、これをRedirect permanent /%E6%97%A5%E6%9C%AC%E8%AA%9E/のように記述ですると、リダイレクトは401エラーとなってしまいます。
難しい言い方をすると、日本語ファイル名を持つURLにおける「%+16進二桁」のコード指定を、URLencode で書くと、301リダイレクトは動作しないということです。
つまり、リダイレクト前のホームページURLに日本語名を使用している場合は、UTF-8でそのまま書けば良いのです。

  • ○ Redirect permanent /日本語/ http://new-homepage/eee/
  • × Redirect permanent /%E6%97%A5%E6%9C%AC%E8%AA%9E/ http://new-homepage/eee/

また、Redirect permanent以外の記述方法としては、以下でも上記方法と同様の効果を得ることができます。

  1. Redirect 301 /aaa.html http://new-homepage/aaa/
  2. Redirect 301 /bbb.html http://new-homepage/bbb/
  3. Redirect 301 /ccc.html http://new-homepage/aaa/ccc/
  4. Redirect 301 /ddd/ http://new-homepage/xxx/ddd/
  5. Redirect 301 /日本語/ http://new-homepage/eee/

 .htaccessの記述について

テキストエディタ(メモ帳、tarapadなど)で作成・編集します。コメント部分(注釈やメモに使う)を除き、半角英数字で記述します。

コメントについて

#がコメントの始まりを意味し、#を書いた部分からその行の終わりまでが有効です。
#の後に説明書きなどのコメントを自由に書けます。
コメント部分は英数字以外に漢字などを使っても問題ありません。

行の途中よりコメントアウトする場合はダブルクオートで囲む("○○○○○")必要があるようです。
もしくは、行を分けて記述する必要があります。

wordpressなどでは、サブディレクトリ(ドメイン/○○○○←この部分)を日本語にすることができます。
これをテキストエディタで編集すると、例えば「ホームページ」というサブ・ディレクトリにすると、テキストエディタでは「%E3%83%9B%E3%83%BC%E3%83%A0%E3%83%9A%E3%83%BC%E3%82%B8」というようになります。わけがわからないですよね。

  • ○ # お知らせA
      Redirect permanent /aaa.html http://new-homepage/aaa/
  • △ Redirect permanent /aaa.html http://new-homepage/aaa/ "# お知らせA"
  • × Redirect permanent /aaa.html http://new-homepage/aaa/ # お知らせA

後日編集するために分かりやすくする工夫として、実際は以下のように記述するイメージです。

  1. # お知らせA
    Redirect permanent /aaa.html http://new-homepage/aaa/
  2. # お知らせB
    Redirect permanent /bbb.html http://new-homepage/aaa/bbb/
  3. # 会社案内C
    Redirect permanent /ccc/ http://new-homepage/aaa/ccc/
  4. # 会社地図D
    Redirect permanent /ddd/ http://new-homepage/xxx/ddd/
  5. # 製品情報E
    Redirect permanent /日本語/ http://new-homepage/eee/
 最終行を付けた方が良いかも?

.htaccessに記述した行は「リターン(改行)」があって初めて有効となることがあります。
最終行に空白行を入れておかないと、最終行に記述した内容が有効にならない場合があります。

 以上、リダイレクトの方法でした。ご参考までに。