[résolu] Personnaliser une page d'erreurs (404, etc ...)

Bonjour,

Souhaitant personnaliser les redirections en cas d’erreur (301, 404, 505, etc …) vers un joli fichier, nous pensions suivre la méthode indiquée dans un tutoriel présent à l’URL:
https://craym.eu/tutoriels/securite/page_error.html

Question 1:
Avec la nouvelle architecture des serveurs ouvaton, où se trouve la racine de chaque site ? Est-ce dans httpdocs/ ? Est-ce là que nous devrions placer le fichier .htaccess contenant les phrases de type “ErrorDocument 404 /NomDeNotreSousRepertoire/NotreJoliePageErreur.html”?

Question 2:
Y-aurait-il une autre solution ?

Coopérativement,

Bonjour,

Par défaut les erreurs redirigent vers les fichiers du répertoire error_docs/, situé au même niveau de httpdocs/.
Par exemple le fichier not_found.html est affiché en cas d’erreur 404. Vous pouvez donc éditer ces fichiers pour les rendre plus jolies.

Vous pouvez aussi indiquer un autre fichier à afficher plutôt que celui dans le répertoire error_docs/, grâce à votre fichier .htaccess et par exemple une ligne du genre :

Dans ce cas, le fichier mon404.html doit se trouver dans le répertoire httpdocs/erreurs/.

Merci Mathieu pour cette réponse.

Il n’y a pas de répertoire error_docs/ dans l’arborescence de notre site au niveau de httpdocs/. Il n’y a que 2 autres répertoires: logs/ et var/; Dans le répertoire logs/, il a des fichiers de type error_log.9.gz.

Pour l’autre solution, une reformulation, pour être certains d’avoir bien compris:

1/ on place, via ftp, un fichier .htaccess, dans le répertoire httpdocs/
Ce fichier contient les lignes de type:
ErrorDocument 404 /erreurs/page-erreur.html
ErrorDocument 301 /erreurs/page-erreur.html
ErrorDocument 505 /erreurs/page-erreur.html
Cela signifie, que le serveur va rediriger les erreurs vers une seule et unique page nommée page-erreur.html située dans le sous répertoire /erreurs/

2/ on créée, un sous-répertoire nommé “erreurs” dans le répertoire httpdocs/
Nous aurons donc une arborescence : httpdocs/erreurs/

**3/ dans le sous répertoire erreurs/, on place notre ma-gni-fi-que fichier personnalisé page-erreur.html **(qui indique joliment qu’une foutue erreur s’est glissée dans le processus et qui propose une solution tout en s’excusant platement et un petit fixme! histoire de)
Le serveur lit .htaccess qui lui indique de charger le fichier page-erreur.html

Est-ce bien ça ?
Si tout cela est correct, alors peut-être une question subsidiaire ? :

Question subsidiaire: si nous plaçons une page index dans un sous répertoire (httpdocs/repZ/rep1/repgrenouille/index.html), et qu’une erreur est détectée par le serveur sur cette page index.html de ce sous-x-répertoire, est-ce que le fichier .htaccess et le fichier page-erreur.html placés comme décrit ci-dessus, joueront aussi leurs rôles de redirection vers page-erreur.html en cas d’erreur ?

Bien Coopérativement

Ci après le fichier .htaccess que nous comptons placer:

## LISTE DES ERREURS ET RENVOI VERS NOTRE PAGE-ERREUR

ErrorDocument 301 /erreurs/page-erreur.html
ErrorDocument 302 /erreurs/page-erreur.html
ErrorDocument 303 /erreurs/page-erreur.html
ErrorDocument 304 /erreurs/page-erreur.html
ErrorDocument 305 /erreurs/page-erreur.html
ErrorDocument 306 /erreurs/page-erreur.html
ErrorDocument 307 /erreurs/page-erreur.html
ErrorDocument 310 /erreurs/page-erreur.html
ErrorDocument 400 /erreurs/page-erreur.html
ErrorDocument 401 /erreurs/page-erreur.html
ErrorDocument 402 /erreurs/page-erreur.html
ErrorDocument 403 /erreurs/page-erreur.html
ErrorDocument 404 /erreurs/page-erreur.html
ErrorDocument 405 /erreurs/page-erreur.html
ErrorDocument 406 /erreurs/page-erreur.html
ErrorDocument 407 /erreurs/page-erreur.html
ErrorDocument 408 /erreurs/page-erreur.html
ErrorDocument 409 /erreurs/page-erreur.html
ErrorDocument 410 /erreurs/page-erreur.html
ErrorDocument 411 /erreurs/page-erreur.html
ErrorDocument 412 /erreurs/page-erreur.html
ErrorDocument 413 /erreurs/page-erreur.html
ErrorDocument 414 /erreurs/page-erreur.html
ErrorDocument 415 /erreurs/page-erreur.html
ErrorDocument 416 /erreurs/page-erreur.html
ErrorDocument 417 /erreurs/page-erreur.html
ErrorDocument 418 /erreurs/page-erreur.html
ErrorDocument 419 /erreurs/page-erreur.html
ErrorDocument 422 /erreurs/page-erreur.html
ErrorDocument 423 /erreurs/page-erreur.html
ErrorDocument 449 /erreurs/page-erreur.html
ErrorDocument 450 /erreurs/page-erreur.html
ErrorDocument 500 /erreurs/page-erreur.html
ErrorDocument 501 /erreurs/page-erreur.html
ErrorDocument 502 /erreurs/page-erreur.html
ErrorDocument 503 /erreurs/page-erreur.html
ErrorDocument 504 /erreurs/page-erreur.html
ErrorDocument 505 /erreurs/page-erreur.html
ErrorDocument 507 /erreurs/page-erreur.html
ErrorDocument 509 /erreurs/page-erreur.html
ErrorDocument 502 /erreurs/page-erreur.html

Oui, c’est bien ça.
Attention, si vous n’utilisez qu’un seul fichier nommé page-erreur.html, toutes les erreurs afficheront le même message, celui contenu dans ce fichier page-erreur.html.
Pour afficher un message différent en fonction du type d’erreur, il faut :

Soit traiter chaque type d’erreur dans un fichier unique avec PHP (et donc créer un fichier page-erreur.php avec le code qui va bien, plutôt que page-erreur.html).

Soit plus simplement spécifier un nom de fichier différent pour chaque erreur, comme ci-dessous, et créer tous ces fichiers.

## LISTE DES ERREURS ET RENVOI VERS NOTRE PAGE-ERREUR
ErrorDocument 301 /erreurs/page-erreur301.html
ErrorDocument 404 /erreurs/page-erreur404.html
ErrorDocument 500 /erreurs/page-erreur500.html

Pour la question subsidiaire, oui.
Un fichier .htaccess est valable pour le répertoire où il se trouve, et pour tous ses sous-répertoires. Sauf si un autre fichier .htaccess se trouve dans un sous-répertoire et modifie une règle (voir http://httpd.apache.org/docs/2.4/howto/htaccess.html#how).

Merci Matthieu pour ces précisions utiles.

Hélas: cela n’a pas fonctionné.

Après avoir placé le fichier de page personnalisée de redirection en cas d’erreur, le fait de placer le fichier .htaccess en question (voir message précédent) dans httpdocs/, rend le site absolument inaccessible: un message d’erreur apparaît, qui me propose d’envoyer un ticket à l’assistance Ouvaton.

Dès que l’on supprime le fichier .htaccess en question, le site redevient accessible.
Il y a quelque chose qui cloche. Mais quoi ??? Mystère …

Si on arrivait à résoudre cela, cela pourrait donner lieu à un “tuto” sur les pages spip du site Ouvaton … bien utile pour les prochains …

Humm …
C’est que … nous n’y arrivons toujours pas. !
Une petite idée ?
Ou bien devons-nous déclencher un “ticket” d’assistance ?

Bonjour,

Il y a une erreur dans votre .htaccess, ou une directive interdite.
Il s’agit de quel site ? Pouvez-vous y mettre votre fichier .htaccess (en le renommant en htaccess.txt par exemple pour qu’il ne bloque pas le site).

Après avoir déclenché un ticket d’assistance, pour résoudre un problème technique sur le site visé, le fichier .htaccess fonctionne et le renvoie vers la page 404 personnalisée fonctionne aussi.
Merci : -> Résolu
:slight_smile: