Hyperwave モジュールは、PHP が Apache モジュールとしてコンパイル された場合に、最適化されています。 この場合、Apache が書き換えエンジンを使用する場合、内部の Hyperwave サーバーをほぼ完全にユーザーから隠すことが可能です。 以下の手順によりこのことを説明します。
Hyperwaveサポートを有効にしてApacheに組み込んだPHPは、wavemaster
に基づく本来のHyperwaveの手法を置換するものなので、Apacheサーバー
は、Hyperwave Webインターフェイスとしてのみ処理を行うと仮定します。
これは必然ではありませんが、設定が容易になります。考え方は非常に
簡単です。まず最初に$_ENV['PATH_INFO']変数を評
価し、Hyperwaveオブジェクトの名前としてその値を処理するPHPスクリ
プトが必要です。このスクリプトを'Hyperwave'と
呼びましょう。URL http://your.hostname/Hyperwave/name_of_object
'name_of_object'という名前のHyperwaveオブジェ
クトを返します。オブジェクトの型に応じて、スクリプトは対応した処
理を行う必要があります。collectionの場合、恐らく子のリストを返す
ことになります。ドキュメントの場合、MIME型と内容を返すことになり
ます。Apacheの書換エンジンを使用した場合、若干の改善が見込まれま
す。ユーザーの立場で見ると、URL
http://your.hostname/name_of_object
がオブジェクトを返せば、より簡単になります。書き換えの規則は非常
に簡単です。
RewriteRule ^/(.*) /usr/local/apache/htdocs/HyperWave/$1 [L]
RewriteRule ^/hw/(.*) /usr/local/apache/htdocs/hw/$1 [L]
RewriteEngine on
Rewrite Engineの一つの代わりとして、Apache ErrorDocumentディレクティブを使用することもで きます。しかし、ErrorDocument でリダイレクトさ れたページは、POSTデータを受け取ることはできないことに注意して下 さい。