The Trap of Web Design

MultiViews と FancyURL

自分は普段なにげなーくやってたのだけど、実はそんなにやってる方はいないかもしれないとふと思って。FancyURL にする場合にもしかするとこのほうが簡単かも、って方法。

.htaccess にね、

Options MultiViews

って一行いれて、extra の中のファイル名にはちゃんと .php って拡張子をつけると、FilesMatch 記述が全部いらなくなります。.php は PHP として認識する基本に戻した上で、アクセス時に拡張子指定ナシで呼び出しても大丈夫にしちゃうってことなんですけど。


ふつう、Nucleus で FancyURL を使うには、パッケージダウンロードしたらついてる extra の中身の拡張子とったファイルを使います。かなり前にも書いたのですが、この仕組み、Apache の PATH_INFO 送出ができて可能になります。1.3 ではデフォルトで On ですが、2.0 以降は Off になっていて、.htaccess でオンにしてやることで使えるようになります。でね、詳しい仕組みは知らなくてもいいのですが、拡張子ナシファイルを PHP として認識させるために FilesMatch ってやつで「こーゆーファイル名のやつは PHP として動かす」って指定をします。extra の中の .htaccess にかいてるコードなんですけどね。これサイトの制作状況によっては例えば複数ブログ作る時なんかにどんどん記述増やさなきゃならない。たいしたことないけど忘れがちだし面倒。

.htaccess で Options 指定が可能なことが前提ですが、最近のサーバなんかは殆ど大丈夫でしょ?自前構築してその設定にした時、php の mimetype がはいってなくて動作しなかった、なんて話は書いてなかったっけ?そーゆーこともあるけど .htaccess 使えるサーバーだったら普通そのへんはすでにちゃんとしてある筈です。ていうか、FancyURL が普通に使えてるならたぶん大丈夫じゃないかな。

この情報でうわーそりゃ便利だー、という方がいるのかどうか分かりませんが、少なくとも自分の使い方だと便利なんです。自分は CMS としてサイト作るのに Nucleus 使って、$blogid とか $catid とかをファイル側で指定しちゃって、ファイル名、つまり URI は好きにしてしまうなんていうことをしてて(複数ブログ構築の基本プラスアルファ)それでいて FancyURI を使う時には FileMatch 記述を増やしてたんでね。

そういや、PHP が CGI 動作のサーバで .php は CGI として動作って指定して、上記 MultiViews の仕組みつかうと、もしかして FancyURL 化が簡単かもしれません。でも今はチェックできる環境がありません。以前苦労してやっと動作可能にしたけど動作が重いから Nucleus 自体の利用(というより PHP の利用を)やめたという経緯あり。

MultiViews 自体、なにかと便利なので自分はサイト構築の最初で .htaccess に書いていれてます。状況的にそう多くなくても、HTML 側でリンク等の指定するときに、拡張子ナシで大丈夫にすることで、あとからその先のページが .html から .php に変わっても修正しないで済むとか、最初はそんなことで使い出したワザです。ていうよりこの機能、そういう状況のためにあるのでしょう。

2006-09-05 12:39 | Nucleus | ichiro | permalink


Comments

コメントはまだありません


Portfolio

Stagemind

▲ 珍しくカバーアニメーションとか