.htaccess e personalizzati ErrorDocument per i diversi tipi di file
-
22-09-2019 - |
Domanda
Mi chiedo se è possibile utilizzare mod rewrite insieme con la decelerazione ErrorDocument per personalizzare le pagine di errore a seconda di quale tipo di file è richiesto.
Ad esempio viene richiesto un file html o php inesistente Apache darà bella pagina HTML personalizzato.
Ma se un'immagine inesistente, js, css, ecc ... viene richiesto il file quindi Apache servirà un file html base con solo un link su di esso.
Un buon esempio di questo comportamento è Facebook. Prova richiesta di un file JavaScript fasullo, si riceverà una pagina diversa quindi se si dovesse richiedere un file php inesistente.
Soluzione
finito per usare una combinazione di entrambi ErrorDocument e RewriteRules questo funziona perché la pagina php lancia un 404 Not Found per me.
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
Altri suggerimenti
Usa RewriteCond !-f
insieme ad una riscrittura alla pagina di destinazione desiderato e un flag di R=404
.
È possibile utilizzare uno script PHP per la tua pagina 404:
ErrorDocument 404 /error404.php
Non è possibile analizzare il sentiero URL con PHP (vedi $_SERVER['REQUEST_URI']
) e determinare quale tipo di risorsa è stata richiesta o è previsto.