Модуль Hyperwave лучше всего использовать, когда PHP скомпилирован как модуль Apache. В таком случае базовый сервер Hyperwave может быть почти полностью скрыт от пользователей, если Apache использует свой механизм перезаписи. Следующие инструкции объяснят это.
Поскольку PHP с поддержкой Hyperwave, встроенной в Apache, предназначен для
замены собственного решения Hyperwave на основе Wavemaster, мы
будем предполагать, что сервер Apache будет служить только
веб-интерфейсом Hyperwave в этих примеров. В этом нет необходимости, но упрощает
конфигурацию. Идея довольно проста. Прежде всего вам
нужен PHP-скрипт, который оценивает переменную $_ENV['PATH_INFO']
и обрабатывает ее значение как имя объекта Hyperwave.
Назовем этот скрипт 'Hyperwave'
. URL-адрес
http://your.hostname/Hyperwave/name_of_object
вернет объект Hyperwave с именем
'name_of_object'
. В зависимости от типа объекта
скрипт должен реагировать соответствующим образом. Если это коллекция, она, вероятно,
вернет список дочерних элементов. Если это документ, он вернет 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]
'hw/'
,
будут затенены. Поэтому убедитесь, что вы не используете такие имена. Если вам нужно
больше каталогов, например, для изображений просто добавьте больше правил или поместите
их все в один каталог. Перед тем, как поставить эти инструкции, не забудьте
включить механизм перезаписи с помощью
RewriteEngine on
В качестве альтернативы механизму перезаписи вы также можете рассмотреть возможность использования
директивы Apache ErrorDocument
, но имейте в виду, что перенаправленные
страницы ErrorDocument
не могут получать POST-данные.