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

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

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.

informação relacionada