Webサイトの一部の動的なコンテンツをもっとサクサク動くレンタルサーバーに移行することになりました。
で、移行後に古いURLで来た人を移行後のサイトに移すために、リダイレクトをすることに。。
当初は、JavaScript で「新しいページに移行しました。○○後に自動的に飛びます」的な感じにしようかと思ってたんですが、調べてみるとリダイレクトする方法いろいろあったんですね。
Like@Lunatic:リダイレクト手法まとめによると、HTTPの301レスポンスコードを使う方法、HTMLの meta データを使う方法、JavaScriptの location.href を使う方法があるようです。
SEO的にお勧め間のは HTTP 301 レスポンスコード(301リダイレクト)使う方法みたいなので、これで行くことにしました。
要件としては、http://www.oldurl.com/forum/ 配下のアクセスを新しい http://www.newurl.com/forum/ にリダイレクトさすというものです。
最初、.htaccessファイルに
Redirect permanent /forum/ http://www.newurl.com/forum/
という方法でやってたんですが、どうもレンタルサーバのApacheがうまくやってくれないようで。。。
なので、Mod-Rewrite モジュールを使う方法にしました。
.htaccessファイルにこんな感じで設定し、/forum/ の配下に置きます。
RewriteEngine On
RewriteRule ^(.*) http://www.newurl.com/forum/$1 [R=301,L]
これで、http://www.oldurl.com/forum/index.php?ID=11 とかのパラメータ付きクエリも http://www.newurl.com/forum/index.php?ID=11 というようにちゃんとリダイレクトできるようになりました。
参考: