
Estoy intentando configurar Apache para enviar la mayoría de los URI a mi aplicación mod_perl con la excepción de algunos archivos, que quiero servir usando el controlador predeterminado. (enviar un archivo estático)
Quiero todohttp://myserver.com/xxxxxpara ir a mod_perl con /, /index.html, robots.txt y algunas subcarpetas para servir estáticamente.
He probado varias combinaciones diferentes pero no consigo que funcione. No parece haber una manera de negativo < LocationMatches > o similares.
Si defino la variable PERL,todova al script, con él apagado, puedo cortar los datos estáticos, pero obviamente el script no funciona.
<Directory /home/httpd/plaintext>
AllowOverride None
<Files ~ "(index.html|robots.txt|favicon.gif)">
SetHandler default-script
</Files>
AddDefaultCharset utf-8
DirectorySlash off
Order allow,deny
Allow from all
</Directory>
<IfDefine PERL>
<Location />
SetHandler perl-script
PerlResponseHandler LinkCrunchDB::Handler
</Location>
</IfDefine>
Supongo que hackear el módulo para usar redirecciones internas podría funcionar, pero es feo.
Estoy usando Gentoo Linux, que incluye todos los archivos en la carpeta module.d/ y luego en la carpeta vhost.d. Revisé todos estos y eliminé las carpetas de Directorio o Ubicación, ¡no había ninguna!
Muchas gracias.
Respuesta1
Esta es una de mis molestias de larga data con mod_perl y, en última instancia, la razón por la que me alegra que haya surgido Ruby on Rails.
Básicamente, no puedes compartir dónde se encuentran tus scripts Perl y dónde se encuentra el contenido estático. Deben estar en directorios diferentes. A menudo hacía trampa y usaba un nombre de host diferente para el contenido estático y dinámico, lo que eliminaba todo el problema. También puedes leer un poco más sobrecómo poner contenido estático en un subdirectoriotal vez.