web-applications - serve - deploy web page in apache
¿Cómo elimino "cgi-bin" de mis URL? (2)
Estoy creando una pequeña aplicación en un dispositivo integrado que tiene un servidor web Boa ejecutándose en él. Estoy creando una aplicación web en una mezcla de páginas HTML simples y scripts Perl para interactuar con la aplicación principal. ¿Hay alguna manera de ocultar el hecho de que algunas de las páginas están siendo servidas desde el cgi-bin en el dispositivo?
Lo que tengo ahora son las siguientes URL.
- http: //localhost/home.html
- http: //localhost/cgi-bin/config.pl
- http: //localhost/cgi-bin/control.pl
- http: //localhost/info.html
Lo que preferiría en gran medida sería:
- http: // localhost /
- http: // localhost / config /
- http: // localhost / control /
- http: // localhost / info /
con las URL anteriores que me llevan al documento index.html o index.pl apropiado. ¿Hay alguna combinación de estructura de archivos y configuración del servidor que permita este comportamiento?
He buscado esto en Google, pero como pueden imaginar, obtengo páginas y páginas de resultados de búsqueda con "cgi-bin" en la URL. Espero que alguien aquí haya hecho esto antes.
EDITAR: debería mencionar que sé cómo hacer esto para páginas HTML simples creando carpetas separadas en mi raíz web, todas con páginas index.html. Mi problema es conseguir que este tipo de solución funcione con archivos .pl o .cgi en el directorio cgi-bin.
Boa lamentablemente no parece tener ningún tipo de opciones mod_rewrite disponibles, por lo que está limitado en lo que puede hacer para volver a escribir una URL. De los boa docs aquí están las opciones que tienes disponibles:
Redirigir, Alias y ScriptAlias
Redirect, Alias y ScriptAlias tienen la misma semántica: coinciden con el comienzo de una solicitud y toman las medidas adecuadas. Use Redirect para otros servidores, Alias para el mismo servidor y ScriptAlias para habilitar directorios para la ejecución de scripts.
Redirigir
le permite informar a los clientes sobre los documentos que solían existir en el espacio de nombres de su servidor, pero ya no. Esto le permite indicar a los clientes dónde buscar el documento reubicado.
Alias
alias un camino a otro. Por supuesto, los enlaces simbólicos en el sistema de archivos funcionan bien también.
ScriptAlias
mapea una ruta virtual a un directorio para servir scripts.
En función de eso, puede probar ScriptAlias o Alias, o incluso un enlace simbólico a una URL "más agradable". Lamentablemente, dado que no tengo Boa disponible aquí, no puedo probar las opciones para decirle más específicamente qué probar.
En apache, esto sería simple con mod_rewrite, pero boa es un poco diferente. Aquí tienes un par de problemas diferentes. Para los archivos .html, asegúrese de tener la siguiente línea en boa.conf:
DirectoryIndex /index.html
Luego, cualquier archivo que se llame index.html se recuperará al llegar a la raíz. Entonces, si su directorio raíz es / htdocs, entonces makings /htdocs/index.html y /htdocs/info/index.html deberían encargarse de esos problemas.
Para sus otras secuencias de comandos, deberá agregar la siguiente línea:
AddType application / x-httpd-cgi pl
Eso debería permitir que Perl se ejecute ya que las CGI se ejecutan en todas partes. Entonces, es cuestión de asegurarse de que boa sepa que son los archivos de índice. Es posible que pueda superar algo de eso usando las directivas Redirect o Alias.