サイトデザインを一新したので、積み残していた旧サイトのコンテンツマージをした。
コンテンツはすべて残す必要もないので、検索上位のコンテンツのみ移行対象にして、xoopsの上で動かしていたBwiki(Pukiwiki互換モジュール)と同じくxoops上で動いていたwordpressのコンテンツをWordPressへ301リダイレクトするための簡単なphpスクリプトをやっつけで書いてみた。
リダイレクトの内容
旧サイトのページはPukiWiki書式のため、URLに日本語パラメータが含まれた形式になる。
例えば、
1 2 3 |
http://spicebeat.net/xoops/modules/bwiki/index.php?%A5%D5%A5%A1%A5%A4%A5%EB%A5%B7%A5%B9%A5%C6%A5%E0%A4%CE%A5%C1%A5%A7%A5%C3%A5%AF%B4%D6%B3%D6%C4%B4%C0%B0 (ファイルシステムのチェック間隔調整) |
を
1 2 |
http://spicebeat.net/blog/archives/188 |
へリダイレクトする。
リダイレクトスクリプト
上記のリダイレクトを実現するphpスクリプトがこれ。リダイレクト対象が多くないので、転送元URLと転送先URLの対を定数でスクリプトに埋め込んだ。
やっつけで書いたので、お作法に沿ってないかもしれない点はご容赦を。(定数はダミー)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
< ?php $strQueryString = $_SERVER['QUERY_STRING']; $list = array(); $list[] = array( 'src' => "sourceURL1", 'dst' => "destinationURL1" ); $list[] = array( 'src' => "sourceURL2", 'dst' => "destinationURL2" ); $list[] = array( 'src' => "sourceURL3", 'dst' => "destinationUR3" ); $list[] = array( 'src' => "sourceURL4", 'dst' => "destinationURL4" ); header("HTTP/1.1 301 Moved Permanently"); if ($strQueryString == NULL) { header( "Location: http://spicebeat.net/blog/"); } else { $strQueryString = ereg_replace('%25', '%', $strQueryString); foreach ($list as $id => $rec) { switch($strQueryString) { case $rec['src']: header("Location: http://spicebeat.net/blog/archives/{$rec['dst']}"); exit; default: }; }; header( "Location: http://spicebeat.net/blog/"); } ?> |
xoops bwiki用リダイレクトスクリプトの設置
- 前述の例では、xoops/modules/bwiki/index.php?p=%A5%D5%A5%A1%A5%A4%A5%EB%A5%B7%A5%B9%A5%C6%A5%E0%A4%CE%A5%C1%A5%A7%A5%C3%A5%AF%B4%D6%B3%D6%C4%B4%C0%B0 を blog/archives/188 へリダイレクト
- 対応するスクリプトでは、
$list[] = array(
‘src’ => “p=%A5%D5%A5%A1%A5%A4%A5%EB%A5%B7%A5%B9%A5%C6%A5%E0%A4%CE%A5%C1%A5%A7%A5%C3%A5%AF%B4%D6%B3%D6%C4%B4%C0%B0”,
‘dst’ => “188”
);
旧サイトのディレクトリ構造のみ残し、上記スクリプトをindex.phpとして、xoops/modules/bwikiディレクトリ直下に設置。ファイルモードは644。
リダイレクト専用なので、他のファイルはすべて削除。
xoops wordpress用リダイレクトスクリプトの設置
- xoops/modules/wordpress/index.php?p=vvvv を blog/archives/ww へリダイレクト
- $list[] = array(
‘src’ => “p=vvvv”,
‘dst’ => “ww”
);
として該当するリダイレクト設定を列挙。
前項と同様に旧サイトのディレクトリ構造のみ残し、上記スクリプトをindex.phpとして、xoops/modules/wordpressディレクトリ直下に設置。
これでスッキリ移行完了。(^^)