a-blogからの移行でのリンク切れ
2010年12月14日
#ablogcms
久しぶりにみんぽすの記事を書いて、過去の記事を見ようとすると残念な index.php?ID=xxxx のようなリンク切れが多数ある事を見つけました。分かっていた事ですが...
とりあえずは対策しましたので、どうやったのかを書き残しておきます。
- https://kazumich.com/index.php?ID=5215 (例えばこんな感じ)
ファイル名の変更
index.php を ablogcms.php のようにリネームします。
.htaccess の変更
mod_rewitreの設定でindex.phpが動きなさいと書かれている部分を修正します。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (^|/)[^\./]*(/?$|(\.html|\.xml|\.js|\.json)$) index.php [L]
を
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (^|/)[^\./]*(/?$|(\.html|\.xml|\.js|\.json)$) ablogcms.php [L]
のように修正します。
index.php を作成
私のブログは、カテゴリーを利用していないので、以下のような感じで a-blog cms 側で生成しているエントリーの形式(entry-xxx.html)に変換する事が可能です。301というステータスをつけてリダイレクトする事で、今のアドレスは新しい場所へ完全に移動したことを意味します。
<?php
$url = "http://".$_SERVER['SERVER_NAME'];
$jump = sprintf("%s/entry-%d.html",$url,$_GET['ID']);
header ('HTTP/1.1 301 Moved Permanently');
header( "Status: 301 Moved Permanently" );
header("location: $jump");
exit;
?>
カテゴリーが設定されている場合には、カテゴリーのディレクトリが必要になりますので、簡単にはできません。ご注意下さい。