Pergunta

Gostaria de saber se é possível usar o Mod Rewrite junto com a desaceleração do ErroDocument para personalizar as páginas de erro, dependendo do tipo de arquivo solicitado.

Por exemplo, um arquivo HTML ou PHP inexistente é solicitado que o Apache fornecerá uma boa página HTML personalizada.

Mas se uma imagem inexistente, JS, CSS, etc ... O arquivo for solicitado, o Apache servirá um arquivo HTML básico com apenas um link nele.

Um bom exemplo desse comportamento é o Facebook. Tente solicitar um arquivo JavaScript falso, você receberá uma página diferente e, se solicitar um arquivo PHP inexistente.

Foi útil?

Solução

Acabou usando uma combinação de ErrorDocument e reescritores, isso funciona porque a página do PHP lança um 404 não encontrado para mim.

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .*(?<!.js|.css|.ico|.txt|.bmp|.gif|.png|.jpeg|.jpg)$ /error/404.php [L]

ErrorDocument 404 /404_basic.html

Outras dicas

Usar RewriteCond !-f junto com uma reescrita na página de saída desejada e uma bandeira de R=404.

Você pode usar um script PHP para sua página 404:

ErrorDocument 404 /error404.php

Lá você pode analisar o caminho da URL com o PHP (ver $_SERVER['REQUEST_URI']) e determine que tipo de recurso foi solicitado ou é esperado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top