| @技術/プログラミング

 退院して暇なので久々にP_BLOGをいじってます。やったのは二つ。各記事のパーマリンクがこれまで

/article.php?id=記事ID
だったのを
/article記事ID.html
にし、各記事にはてなブックマークへのリンクボタンを付けてみました。

mod_rewriteを使ってphpをhtmlとして偽装

 はてなブックマークのホッテントリを読んでて、「検索エンジンは動的生成されるページよりも静的生成されるページの方を好むから、phpなどで動いてるサイトはSEOのためにhtmlなどを偽装すべし」という趣旨のことを書いてある記事(最低限心がけるべきサイトの構造デザイン最適化6つのポイント | Web担当者Forum)を目にしました。そういえば以前、Quanterm Optexのyuecさんが同じようなカスタマイズをしてて、どうやってたんだろうって不思議だったんですよね。別にSEOには興味ないのですが、Apacheのmod_rewriteという機能を使えば比較的簡単にできるようなので取り組んでみた次第。

 mod_rewriteの使い方はググればいっぱい出て来ますので割愛。僕はレンタルサーバーを利用しているので.htaccessに記述する方法をとりました。

 で、P_BLOG側なんですが、いじるのは /include/fnc_logs.inc.php。このファイルで "article.php?id=" を探し出して "article'.$row['id'].'.html" などに書き換えます。$row['id'] は場所によっては$row['refer_id']になっているところもあるので注意。同様の処置を /trackback/include/fnc_trackback.inc.php にも施してやれば記事のパーマリンクが /article記事ID.html となります。

 URLを偽装しているだけ(.htaccessで転送しているようなもの)なので、これまでの /article.php?id=記事ID というURLにアクセスしてもきちんと記事は表示されます。外部サイトやソーシャルブックマークからのアクセスがあっても問題ナッシングです。(しかしGoogleセンセイに重複サイトと見なされてしまう危険を伴う諸刃の剣?)

はてなブックマークボタン装着

 僕自身はKeizoさんと同じく、Pukkaが気に入っているのでメインのウェブブックマークはdel.icio.usなんですが(ぼくの del.icio.us 三種の神器 (感じ通信))、日本語を読む人たちの大多数ははてブを利用しているわけで、彼らにブックマークされてなんぼなわけなんですよね。

 なぜか僕はこれまではてなを利用する気になれなくてあまり使ってこなかったのですが(きっとbogusnewsの読み過ぎ)、はてブのホッテントリは便利だなと、最近はRSSリーダーに登録してフィードを拾ってます。もちろん、SBMに登録されればされるほどさらに読者が増えてさらにブックマークされるという堂々巡り的な効果があることも承知しているのですが、何人かが面白いと評価した記事は確かに興味深いところがあるわけで、これまで訪れることのなかったブログにも訪れる機会が増えました。それではてなブックマークすごいなと認識を改めた次第です。半スペ問題の記事を書いたときにホッテントリ入りしたのが嬉しかった&怒濤のアクセスに驚いた、というのもあります。

 いじるのは先ほどと同じく /include/fnc_logs.inc.php。ボタンを表示させたいところにコードを挿入するだけです。僕は投稿日時とかタグの横に表示させたかったので、245行目付近に挿入しました。手順ははてなのサイトに書いてあるので、これをP_BLOG風に応用するだけです。僕は以下のように記述しました。

<a href="http://b.hatena.ne.jp/entry/http://' . $_SERVER['SERVER_NAME'] . dirname($_SERVER['REQUEST_URI']) . 'article' . $row['id'] . '.html">
<img src="' . $cd . '/images/b_entry.gif" width="16" height="12" alt="' . $lang['hatenab'] . '" /></a> 
<a href="http://b.hatena.ne.jp/entry/http://' . $_SERVER['SERVER_NAME'] . dirname($_SERVER['REQUEST_URI']) . 'article' . $row['id'] . '.html">
<img src="http://b.hatena.ne.jp/entry/image/http://' . $_SERVER['SERVER_NAME'] . dirname($_SERVER['REQUEST_URI']) . 'article' . $row['id'] . '.html"></a>

見やすいように改行入れてるので、コピペする人は改行削除してください。

 注意すべきは、はてなのヘルプにのってるものをコピペすると

alt="このエントリーを含むはてなブックマーク"
という風にマルチバイト文字が記述してあるので文字化けします。僕は
alt="$lang['hatenab']"
と記述し、/lang/japanese.inc.php にテキトーに
$lang['hatenab']    = 'この記事をはてブで見てみる';
などと記述しておきました。

 以上、かなり分かりにくいですがP_BLOGで静的ページ偽装し、はてブボタン装備する方法でした。