Fast Search の紹介
マイナな MT プラグインを埋もれないうちに紹介しよう、のコーナーがやってきました(世界はそれを余計なお世話と呼ぶんだぜ)。今回紹介するのは PHP を利用した高速検索プラグインです。
漫画の感想・便利なアプリの紹介・おすすめ商品など
マイナな MT プラグインを埋もれないうちに紹介しよう、のコーナーがやってきました(世界はそれを余計なお世話と呼ぶんだぜ)。今回紹介するのは PHP を利用した高速検索プラグインです。
今回は、ちょっと難しいよ! でも、Movable Type で動的生成(ダイナミック・パブリッシング)を利用している人は必見です。
MT で動的生成を利用する設定にすると .htaccess が自動的に作成されます。初期状態のままだと、思いっきりサーバに負担がかかるかも知れない──ということを発見しました。特に Perl 版ダイナミック・パブリッシングを使っている人は、とんでもないことになっているかも。──悪いのは、みんな spammer ですが……。
具体的には、.htaccess ファイルにこんな設定を施す、という提案です。
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
# 下の三行を追記
RewriteCond %{REQUEST_FILENAME} !\.(cgi|css|gif|jp*g|png)$
RewriteCond %{REQUEST_URI} !^/mt/cm/.*$
RewriteCond %{REQUEST_URI} !^/mt/tb/.*$
RewriteRule ^(.*)$ /mt-dynamic.php [L,QSA]
では、順を追って解説してみます。
ref: はてなダイアリーの公開デザインを MT で使いたい! : 亜細亜ノ蛾
──ほとばしる熱いパトスでやってしまいました……。
亜細亜ノ蛾 のトップページだけ公開デザイン「Snow-Girl」 – はてなダイアリーにしました。(2006-11-26T16:17:28+09:00 現在)。id:tikeda さんに激しく感謝!
Another HTML-lint のご機嫌取りな HTML コードで、まだまだ未完成です。ヘッダが無いと、どうも はてなっぽくないので、そのあたりも作り込みたいところ。
完成した暁には──こ、こう k
はてなの中の人 : 「公開したい? だめー フツーにだめー」
はてなダイアリー日記 – はてなダイアリーデザイン管理機能リリースを見て真っ先に思ったこと。
(´ -`).。oO( Movable Type で はてなダイアリー互換のテンプレートを作ったらモテモテじゃね?)
昔から(たぶん MT でブログを始めた当初から)「まぁ、似たようなことを考えているひとは 100 万人くらいいるだろうから、あとからゆっくりと探すか……」と思ってのんびり構えて、早三年(!)。いまだにそんなものは見たことがありません。
ひょっとしたら、ライセンスの問題でないのか? ということで、ちょっと はてなダイアリーのライセンスについて調べてみました。
2006-11-11T11:57:30+09:00 追記があります(本文末)
いまだに自分はMT3.2を利用しています。“Tagwire”プラグインで「タグ」も使えるし、快適な感じ。
しかし、タグアーカイブページは動作が遅く、サーバに負荷がかかります。PHPスクリプトも使えないし。そこで、
というのがずーーーっっっと(一年以上も!)悩んでいたのですが、今日、2つとも解決しました!
ちなみに2番に関しては、自分が借りているサーバ(XREAのS61サーバ)では“CGI::Cache”を使った方法が上手く動作しない(キャッシュが無い状態では100%エラー)──っぽいので、いままでキャッシュ化していませんでした。つまり、アクセスがあるたびにCGIがページを出力するという、何とも恐ろしい状態。
2006-11-11T21:10:48+09:00 追記
……すいまセーン……ボク ウソついてまーした……。ということで、キャッシュされていないことが判明。本文末に追記しました。
“CGI::Cache”が使えている場合でも、出力をPHP化できると、いろいろメリットがあるので、導入をお勧めします。
今回紹介するのは「MT3.2 + Tagwire + MT-XSearch」な環境向けですが、「MT3.3標準タグ機能 + MT-Search」でも応用できそうです。試してないけど(©(o))
「みんな、聞いてくれ。実は……いままで紹介してきたspam対策は、まだ不完全だったんだよ!」
ΩΩΩナンダッテー(投げやり)(ぷー ←やり投げ)
前回、spam対策としてIPフィルタを導入後、海外からのspamがMTの「迷惑コメント」「迷惑トラックバック」に登録されることが全く無くなりました。
──が、依然として、コメントCGIに対してspam業者タソからの熱烈なるラブコールが毎日毎日……。どうやら、コメントCGIをリネームしても、スパマは数日で発見するようです。ファーックス! Fax電話!
できれば、コメントCGIにアクセスすること自体をご遠慮願いたい。アクセスログを見てげんなりすることを無くしたい。
──そこで、定期的にコメントCGIをリネームする方法を紹介します。
#### テンプレいじりの必須知識
どのブログツールでも大差ないかと思いますが、MTでデザインを変更する場合、それぞれのページの「テンプレート」を変更することになります。少しテンプレート変更に慣れてくると、複数のテンプレートで同じ部分が繰り返されていることに気がつくでしょう。例えば「カテゴリィ一覧」や「月別アーカイブ」、「最近の記事一覧」などが代表かと思います。
さて、MTといえば再構築、というのが有名ですが(?)、できれば再構築時間を短くしたい。ちょっと記事を変更しただけで何時間も待たされる(おおげさ)のは厭だ、という人が大半でしょう。そんなときには、それぞれのテンプレートの共通部分を、何とかして使い回したいものです。
幸いにして、MTには`
[hxxk.jp – カテゴリアーカイブとナビゲーションリスト](http://hxxk.jp/2005/02/04/0232 “hxxk.jp – カテゴリアーカイブとナビゲーションリスト”)
#### MTIncludeの仕様
いよいよ本題ですが、`
例えば、年ごとに作成された何らかのファイルを取り出すために
と書いてもダメな訳です。どうしても読み込みたい場合は
< ?php readfile('
という具合に、PHPの力にすがることになります。──でも、毎回ページが読み込まれるたびにPHPスクリプトが実行されるので、サーバに負担がかかる──と思います(どの程度かは知らない)(レンタルサーバ者の悲しさ)。
──では、どうするか?
#### 祝! MT誕生5周年
>本日10月8日は、Movable Typeが世に出てちょうど5年。記念すべき区切りの日になります
>[Six Apart – Movable Type News: 【5周年記念】 あなたの「Movable Typeストーリー」を共有してください](http://www.sixapart.jp/movabletype/news/2006/10/08-1600.html “Six Apart – Movable Type News: 【5周年記念】 あなたの「Movable Typeストーリー」を共有してください”)
ということで、six Apartのブログに記念記事が載っていました。
Six Apart – Movable Type News: 【5周年記念】 あなたの「Movable Typeストーリー」を共有してください
さっそく、自分もMTの思い出を語ってみようかと(asiamoth.comでは、みなさんの世界と一日ほど時差があるようだ)。
──思い出話には酒が、それもビールが似合う。ということで、ぐびぐび、ぷはー。……えっと、何を書くんだっけ? (酒、弱い)
最後の方に「シンプルMT」というアイデアがあるので、それまで少し、戯れ言にお付き合いください。
#### 序章に過ぎなかった!
「みんな、聞いてくれ。[対SPAM最終兵器“Junk slowdown”](https://asiamoth.com/200605061758/ “対SPAM最終兵器“Junk slowdown”!! : 亜細亜ノ蛾”)は序章に過ぎなかったんだよ!」
「な・・・・なんだってー!!(AA略)」([MMR](http://d.hatena.ne.jp/keyword/MMR “MMRとは – はてなダイアリー”)を読んだことがないまま、勘で書いてます)
ということで──上記spam対策後も、一日に数件は(おそらく機械的な)spamコメントが書き込まれていました。恐るべきことに、コメント・トラックバックスクリプトの名前を変更しても、数時間後には変更後のスクリプトにアクセスがあります。──(X)HTMLを解析してspamを書き込む、というのは、もう当たり前なんですかね。
それらはすべて「迷惑コメント」行きになるので、善良なる訪問者のみなさんの目には触れないのですが──。「迷惑コメント」を見るたび、うんざりするくらいspamが登録されています。
今回は、今度こそ決定版と言えるspam対策を紹介します。
[Amazon Search](http://www.drk7.jp/MT/archives/000366.html “Amazon Search β3 公開 :: Drk7jp”)でお世話になっているdrkさん(ありがとうございます!)の[MT でカテゴリ別に楽天ランキングを表示する方法 :: Drk7jp](http://www.drk7.jp/MT/archives/001134.html “MT でカテゴリ別に楽天ランキングを表示する方法 :: Drk7jp”)を読んで思ったこと。
>さて、当然ながら MT とか使っていたらカテゴリ毎に違った広告を表示したくなります。これを実現するには意外と簡単。
>
>「[MT正規表現プラグイン MT Regex Plugin](http://www.drk7.jp/MT/archives/000827.html “Movable Type の正規表現プラグイン :: Drk7jp”)」さえインストールしてしまえばいいんです。
>
>[MT でカテゴリ別に楽天ランキングを表示する方法 :: Drk7jp](http://www.drk7.jp/MT/archives/001134.html “MT でカテゴリ別に楽天ランキングを表示する方法 :: Drk7jp”)
「逆・それ plu」
──つまり、それはPluginなしでできますよ、という。