コメントがありましたので、記事としてまとめてみます。あと追加としてサブブログのサブディレクトリ運用を併用する場合についても。
【2004/12/21追記】
NP_ContentsList2.0から以下の改造は不要です。すぺてプラグインオプションで設定できるようになりました!ありがとうタカ姐さん!
1.まずNP_ContentsList側。吐き出すURLをMagical形式にするため、コードを以下のように書き換えます。
312行目辺り
$data['blogurl'] .= '/blogid_' . $data['blogid'];
377行目辺り
$myblogurl .= '/blogid_' . $data['blogid'];
これで /blogid_x_catid_xx.html という形式のURLを吐き出すようになります。
2.しかし、これはMagicalURLでは考慮してない形式になるので(考慮してるのは /catid_xx_blogid_x.html の様にcatidが先の形式)、.htaccessファイルのRewriteRule行に以下の記述を加えます。
RewriteRule ^blogid_([0-9]+)_catid_([0-9]+).html+ index.php?blogid=$1&catid=$2
3.blogURLの問題(追記)
コメントより問題のある事が発覚。というか当然の話ですね。サブディレクトリで運用してるので忘れてました(^^;
この問題は当初下のサブディレクトリでの対処をしていなかったウチでも起きていた問題でした。当初.htaccessファイルで /blogid_xx となるリンクをそのまま有効にする方法を書いたのですが、やはりスマートではないので、NP_ContentsListの書き換えで。
NP_ContentsListの397行目、echo TEMPLATE::fill($item,$data); の上に以下の行を追加
if(preg_match ('/_[0-9]+$/',$data['blogurl'])){ $data['blogurl'] .= '.html';}
これで動くと思いますが…。一応実験済みではあります。
サブブログをサブディレクトリとしている場合、に方法1の改造をすると、サブブログでのURLが /subblog/blogid_x_catid_xx.html の様になり、ちょっとスマートじゃありません。サブディレクトリであるからにはブログは指定されているわけですから、URLとしては /subblog/catid_xx.html としたいところです。ということで書き換えをするのは2つのファイル。
1.NP_ContentsListは2カ所をコメントアウトします。
1-1.306行目~327行目。具体的には以下のように(太字が追記部分)
306行 /*if ($data['blogid'] != $CONF['DefaultBlog'] || $defurl != $CONF['IndexURL']) {
・・・・・
326行 }
327行 */
328行 if ( $data['blogid'] == $nowbid ) {
(/* ~ */で囲まれた範囲がコメントアウトされます。)
1-2.373~381行目を以下のように
373行 /*
374行 if ($indexFlg) {
・・・・・
381行 }*/
382行 $catdata['catlink'] = addLinkParams($myblogurl,$linkparams);
しかし、これではURLが /subblog/_catid_xx.html となってしまいます。
2.caidの前の"_"を削除したいので、globalfunctions.phpを書き換えます。
MagicalURLをされているのであれば、function addLinkParams()に以下のようなコードを加えていると思いますが、
$link .= ".html";
if(strstr ($link, '//')){ $link = preg_replace("/([^:])\/\//", "$1/", $link);}
(下の行は記述が少し違うかもしれません。この記事を参考に)
その行の下に以下の記述を加えます。
if(strstr ($link, '/_')){ $link = str_replace("/_", "/", $link);}
これでスッキリとしたURLになるはずです。ここのサイトはその改造で動いています。(サブブログは表にだしてませんが、ちゃんと動いてます)
(右クリックからショートカットのコピーを選択)