Localização do script Apache ErrorDocument

1

Usando o apache 2.4 no Linux, com vários servidores virtuais, cada servidor virtual com seu próprio DocumentRoot, eu gostaria que o redirecionamento local ErrorDocument do servidor principal apache executasse um único script perl relevante para o DocumentRoot principal do apache, e não um perl script sob cada servidor virtual.

O que acontece é que a raiz do documento do servidor virtual é usada para construir o caminho do sistema de arquivos, em vez da raiz do documento do servidor principal.

Existe alguma maneira que eu possa configurar o servidor apache para usar apenas um único script de redirecionamento local, em vez de (aparentemente) ter que ter um script (idêntico) em cada DocumentRoot do servidor virtual?

    
por keith20mm 24.08.2016 / 04:57

2 respostas

1

Você pode definir um único documento de erro global colocando as seguintes diretivas no contexto global (Servidor) (ou seja, não dentro de qualquer bloco < VirtualHost >). Em seguida, ele funcionará para todos os seus hosts virtuais. Isso mostra um arquivo HTML estático, mas pode ser facilmente modificado para ser um script perl

Alias /error-404.html /path/to/my/errors/error-404.html
ErrorDocument 404 /error-404.html

<Directory "/path/to/my/errors">
  require all granted
</Directory>
    
por 24.08.2016 / 08:38
0

Você pode definir o ErrorDocument como um recurso externo, por exemplo,

ErrorDocument 500 http://error.example.com/server_error.html

Assim, você pode fazer referência apenas ao script no seu vhost principal.

Acredite ou não, isso está documentado na documentação do ErrorLog .

    
por 24.08.2016 / 07:22