Misturando scripts e conteúdo estático com tags de localização no apache

1

Estou tentando configurar o Apache para enviar a maioria dos URIs para meu aplicativo mod_perl, com a exceção de alguns arquivos, que desejo veicular usando o manipulador padrão. (envie um arquivo estático)

Eu quero que o link vá para o mod_perl com /, /index.html, robots.txt e algumas subpastas para serem veiculadas estatisticamente.

Eu tentei várias combinações diferentes, mas não consigo fazer funcionar. Não parece haver uma maneira de negar < LocationMatches > ou algo parecido.

Se eu definir a variável PERL, tudo vai para o script, sem ele, 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>

Eu 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 vhost.d. Eu verifiquei tudo isso e removi todas as pastas Diretório ou Local, não havia nenhuma!

Muito obrigado.

    
por Chris Huang-Leaver 16.01.2010 / 19:58

1 resposta

1

Este é um dos meus aborrecimentos de longa data com o mod_perl e, finalmente, porque eu estou feliz que o Ruby on Rails surgiu.

Basicamente, você não pode compartilhar onde seus scripts Perl vivem e onde o conteúdo estático reside. 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 removeu todo o problema. Você também pode ler um pouco mais sobre como colocar conteúdo estático em um subdiretório .

    
por 17.01.2010 / 02:29