URLをリダイレクトする場合に.htaccessにApacheのモジュールのmod_rewriteを書くことで実現できます。
http://hoge.hogera.org/12345.htmlというURLがあった場合にhttp://hoge.hogera.org/hoge.html?id=12345を実行させる時には
Rewrite Engine on
RewriteRule ^([0-9)]+)\.html$ hoge.html?id=$1[R=301,L]
でOKです。
しかし、この時にブラウザで表示されるURLはhttp://hoge.hogera.org/hoge.html?id=12345となります。これを元のURLのhttp://hoge.hogera.org/12345.htmlにするために試行錯誤しました。
hoge.htmlは実際はphpをベースにしたプログラムです。もしhoge.htmlがhoge.phpならブラウザでのURLはhttp://hoge.hogera.org/12345.htmlと表示されます。
そこでこれを利用しmod_rewriteの飛び先を一旦hoge.phpにして、その後にhoge.html?id=$1を実行させるようにしました。
hoge.phpは
<?php
$id = $_GET['id'];
readfile(http://hoge.hogera.org/item.html?id=$id)
?>
です。
また.htaccessは下記のように書きなおします。
Rewrite Engine on
RewriteRule ^([0-9)]+)\.html$ hoge.php?id=$1 [L]
これによりURLのリダイレクトでブラウザの表示が元のURLとなります。
ただしブラウザですがインターネットエクスプローラーはIE7以上が必要です(それ以下だと思った表示にならないため)。Firefoxは3.5.9ではOKでした。