
Estou tentando configurar o Apache para enviar a maioria dos URIs para meu aplicativo mod_perl, com exceção de alguns arquivos, que desejo servir usando o manipulador padrão. (enviar um arquivo estático)
eu quero todoshttp://myserver.com/xxxxxpara ir para o mod_perl com /, /index.html, robots.txt e algumas subpastas para serem veiculadas estaticamente.
Eu tentei várias combinações diferentes, mas não consigo fazer funcionar. Não parece haver uma maneira de < LocationMatches > negativo ou algo semelhante.
Se eu definir a variável PERL,tudovai para o script, com ele desligado posso cortar os dados estáticos, mas obviamente o script não 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>
Acho que hackear o módulo para usar redirecionamentos internos pode funcionar, mas é feio.
Estou usando o Gentoo Linux, que inclui todos os arquivos na pasta module.d/ e depois na pasta vhost.d. Eu verifiquei tudo isso e removi todas as pastas Diretório ou Local, não havia nenhuma!
Muito obrigado.
Responder1
Este é um dos meus aborrecimentos de longa data com o mod_perl e, em última análise, é por isso que estou feliz que o Ruby on Rails tenha surgido.
Basicamente, você não pode compartilhar onde seus scripts Perl residem e onde reside o conteúdo estático. Eles devem estar em diretórios diferentes. Muitas vezes trapaceei e usei um nome de host diferente para o conteúdo estático e dinâmico, o que eliminou todo o problema. Você também pode ler um pouco mais sobrecomo colocar conteúdo estático em um subdiretóriotalvez.