2010-01-26 3 views
1

Je me demande s'il est possible d'utiliser mod rewrite avec la décélération ErrorDocument pour personnaliser les pages d'erreur en fonction du type de fichier demandé..htaccess et ErrorDocument personnalisé pour différents types de fichiers

Par exemple, un fichier html ou php inexistant est demandé Apache donnera une belle page HTML personnalisée.

Mais si un fichier image, js, css, etc ... inexistant est demandé, Apache distribuera un fichier html de base avec seulement un lien dessus.

Un bon exemple de ce comportement est Facebook. Essayez de demander un faux fichier JavaScript, vous recevrez une page différente, si vous deviez demander un fichier php inexistant.

Répondre

2

Terminé en utilisant une combinaison des deux ErrorDocument et RewriteRules cela fonctionne parce que la page php jette un 404 introuvable pour moi.

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 
+0

Bonne réponse! = D –

0

Utilisez RewriteCond !-f avec une réécriture à la page de sortie souhaitée et un indicateur de R=404.

+0

Je vois où vous allez. Les seuls problèmes sont que je ne veux pas rediriger vers une nouvelle URL Je veux juste une page 404 à l'URL demandée. – AWinter

+0

'R' avec un code en dehors de 3XX fera seulement une redirection interne. Il suffit de pointer vers error404.js, ou error.css, ou autre. –

-1

Vous pouvez utiliser un script PHP pour votre page 404:

ErrorDocument 404 /error404.php 

Il vous permet d'analyser le chemin d'URL avec PHP (voir $_SERVER['REQUEST_URI']) et déterminer quel type de ressource a été demandée ou devrait .

+0

Je le faisais à l'origine. Ce que j'espère faire est de réduire le nombre de demandes PHP au serveur. – AWinter

+0

AWinter: un ErrorDocument aboutit à une seule invocation PHP de toute façon. –

Questions connexes