notfoundプラグインを導入

先日導入した find プラグイン(参照)のおかげで、ブログ内検索が、かなり使えるようになりました。もっと早く導入しても、よかったですね。

ところで、find プラグイン検索で、どのエントリにもヒットしなかった場合は、404 Not Found になっていたかと思います。これは、hail2u.net - Weblog - blosxomと404 #2の方法で、存在しないページにアクセスがあったら 404 を返すようにしていたからです(たぶん)。

blosxomは、存在しないページにアクセスがあった場合でも、無理矢理ページをこさえて出力してしまいます。hail2u.net - Weblog - blosxomと404 #2は、これを防ぐための措置です。

このままでもいいかなと思っていたのですが、notfound プラグインを改造して使ってみることにしました。notfound は、hail2u.net - Weblog - blosxomと404 #2と同じことをプラグイン側で実現するものです(適当)。

これを、Extension3 - blosxomのカスタマイズ#6の方法でカスタマイズすれば、find プラグインで検索した場合は、notfound の対象外になります。つまり、検索で何もヒットしなくても 404 を返さず、何か表示されるようになります。

ただ、hail2u.net - Weblog - blosxomと404 #2でも notfound プラグインでも、存在しないカテゴリへのアクセスで無理矢理ページが表示されるケースがあるようです。それは、実際に存在するカテゴリの名前(例: /internet/)と、途中まで一致するところ(例: /int や /i/ など)にアクセスした場合です。

たとえば、

http://niiyan.s8.xrea.com/blosxom/int/

でアクセスしても、

http://niiyan.s8.xrea.com/blosxom/internet/

と同じページが表示されます。

dynamic_cache プラグインを使っている場合、これもキャッシュされてしまいます。

追記: よく考えれば(考えなくても)、notfound プラグインの「Not Found出力を避けるフレーバーの拡張子」で .find (find プラグイン用の flavour )を指定すれば、検索で何もヒットしなくても 404 を返さないようにすることができるのでした(find プラグイン用の flavour を用意しているのなら)。

my $flavour_re = '^(?:wikieditish|find)$';

こんな感じでいいみたいです。

Edit this entry...

wikieditish message: Ready to edit this entry.
















A quick preview will be rendered here when you click "Preview" button.