似非静的コンテンツで使用感を変えない方法

メッセージ

.htaccessとmod_rewriteを使用した静的コンテンツに見せかける方法ですが、擬似コマンドとページ名データベースを作成することでブラケットネームなどをそのまま使用しつつ利用できます。

参考までに私のホームページで見てください。ページ数が莫大な数になるとオーバーヘッドを要しますが、一般的なコンテンツ量でしたらさほどの負担にはならないでしょう。

設置に関して技術的な知識が必要となりますが、SEO的には多少よろしいかと。

ここに書き込むのが初めてなので要領がよくわかりませんがソースが必要なら書きます。

動作概要

あくまでプラグインを実装するのではなく、プラグインを判別するシステムを用いてページを識別するということです。

mod_rewiteによる書き換え
↓
index.php読み込み
↓
データベース初期化。読み込み
↓
init.php読み込み
↓
$_PUT $_GET など入力クエリの整理
↓
擬似コマンドの判別? readコマンドへの書き換え : 通常処理
↓
通常処理
↓
データベース未登録コンテンツのチェック、追加
↓
index.phpにもどる
↓
データベースソート。保存
↓
終了

流れはこんな感じ。データベースというのはハッシュを使用して各コンテンツのタイトルを記憶するだけです。私のところでは「$page」を使用して自サイト内の作成済ページ名をmake_link.php::make_pagelink等のところでデータベースの登録チェックを行い、必要であれば登録するようにしてます。

読み込むときにはreadコマンドで使用するエンコード済のページ名が整数リテラル(まぁIDといったほうがわかりやすいね)から即変換されるようになっているわけです。

コマンド名を「rename」などとして、

http://hoge.net/123456.html
↓
http://hoge.net/index.php?cmd=rename&value=123456
↓
if ($vars['cmd'] == 'rename'){
{
    $vars['cmd'] = 'read' ; $vars['page']= get_pagename_from_id($vars['value']);
}

といった風にリネームし(実際にはもうちょっと複雑なことをしています)、init.phpにおける初期処置中に(通常、クエリがページ名のみとして判別される直前)コマンドが該当する場合はvalueがDBで示すページ名を引き出しreadコマンドに引き充てるということです。



*1 性能面や軽快さの面で

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-09-22 (水) 01:10:35
Site admin: PukiWiki Development Team

PukiWiki 1.5.3+ © 2001-2020 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.357 sec.

OSDN