Hyperwave
PHP Manual

Integración con Apache

La extensión Hyperwave se usa mejor cuando PHP está compilado como módulo de Apache. En tal caso, el servidor Hyperwave subyacente se puede ocultar a los usuarios casi completamente si Apache usa su motor de reescritura. Las siguientes instrucciones explicarán esto.

Ya que PHP con soporte para Hyperwave con Apache incluido se pensó para reemplazar la solución nativa de Hyperwave basada en Wavemaster, asumiremos que el servidor Apache sólo sirve como interfaz web de Hyperwave para estos ejemplos. Esto no es necesario pero simplifica la configuración. El concepto es bastante simple. Lo primero de todo, se necesita un script de PHP qeu evalúe la variable $_ENV['PATH_INFO'] y trate su valor como el nombre de un objeto de Hyperwave. Llamemos a este script 'Hyperwave'. La URL http://su.nombre_host/Hyperwave/nombre_objeto tendría que devolver el objeto Hyperwave con el nombre 'nombre_objeto'. Dependiendo del tipo de objeto el script tiene que reaccionar de manera adecuada. Si es una colección, probablemente devolverá una lista de hijos. Si es un documento devolverá el tipo mime y el contenido. Se puede lograr una ligera mejora si se usa el motor de reescritura de Apache. Desde el punto de vista del usuario sería más sencillo si la URL http://su.nombre_host/nombre_objeto devolviera el objeto. La regla de reescritura es bastante sencilla:

RewriteRule ^/(.*) /usr/local/apache/htdocs/HyperWave/$1 [L]
Ahora, cada URL se refiere a un objeto del servidor Hyperwave. Esto ocasiona un problema fácil de resolver. No hay manera de ejecutar un script diferente, p.ej. para búsquda, del script 'Hyperwave'. Esto se puede arreglar con otra regla de reescritura com la siguiente:
RewriteRule ^/hw/(.*) /usr/local/apache/htdocs/hw/$1 [L]
Esto reservará el directorio /usr/local/apache/htdocs/hw para scripts adicionales y otros ficheros. Asegúrese de que esta regla se evalúa antes que la de arriba. evaluated before the one above. Hay un pequeño inconveniente: todos los objetos de Hyperwave cuyo nombre comiencen con 'hw/' serán ocultados. Así que asegúrese de no usar tales nombres. Si necesita más directorios, p.ej. para imágenes, simplemente añada más reglas o ubíquelas todas en un directorio. Antes de poner estas instrucciones, no olvide activas el motor de reescritura con
RewriteEngine on
Necesitará scripts:

Como alternativa al Motor de Reescritura, puede también considerar usar la directiva de Apache ErrorDocument, pero tenga en cuenta que las páginas redirigidas de ErrorDocument no reciben información POST.


Hyperwave
PHP Manual