Accueil > Wordpress > WordPress : personnaliser la page d’erreur 404 sur Free.fr

WordPress : personnaliser la page d’erreur 404 sur Free.fr

Plus j’utilise WordPress, plus … j’utilise WordPress !  C’est vraiment amusant comme l’utilisation de cet outil est tentaculaire, et que dès qu’un sujet est résolu, de nouvelles idées apparaissent.

Je me suis rendu compte que les erreurs de type « 404 Page Not Found« , en français « La page que vous avez demandé est introuvable », n’étaient pas affichées par mon installation de WordPress mais … par Free.fr

Houlà, que c’est vilain !

erreurfree

Bon, visiblement le serveur web de Free intercepte l’erreur 404 générée par la demande de l’utilisateur, et redirige sur sa propre page d’erreur. Il va falloir remédier à cela.

Rediriger la page d’erreur : le fichier .htaccess

Pour rediriger ce type d’erreur « localement » à votre WordPress, il suffit de créer un fichier .htaccess à la racine de votre blog, et d’y mettre la ligne suivante :

ErrorDocument 404 /index.php

Attention, sous Windows il n’est pas possible de créer un fichier .htaccess. Il faut alors créer un fichier erreur404.htaccess, le transférer sur votre site, puis le renommer en .htaccess.

Personnaliser la page d’erreur avec son thème

En général les thèmes propose une page personnalisée pour ce type d’erreur 404. C’est la cas d’Inove, et donc rien à faire, maintenant toute demande d’une page inexistante vous affichera un message d’erreur explicite via les fichiers 404.php et 404.css de votre thème.

404

A noter que j’ai ajouté à cette page d’erreur un bout de code en provenant des Outils pour Webmaster de Google, afin de proposer directement à l’utilisateur une recherche sur le terme demandé dans l’URL.

<div align ="center"><script type="text/javascript">
  var GOOG_FIXURL_LANG = 'fr';
  var GOOG_FIXURL_SITE = 'http://fanta78.lasnespace.com';
</script>
<script type="text/javascript"
    src="http://linkhelp.clients.google.com/tbproxy/lh/wm/fixurl.js"></script>
</div>
  1. 12/03/2009 à 13:40 | #1

    Bonjour,

    En recherche au sujet de ton article je suis arrivé ici par hasard. Très intéressant à lire, surtout que j’ai une page que j’envisageai de faire comme toi avec le moteur google pour rechercher en interne.

    Mais j’ai essayé n’importe quelle nom.htm/php toutes tes erreurs 404 sont redirigées à free et ne restent pas en interne !

  2. fanta78
    12/03/2009 à 15:25 | #2

    Argh, je suis encore trahi :) Je jete un oeil de suite…

  3. fanta78
    12/03/2009 à 15:35 | #3

    Effectivement, j’avais écrasé le .htaccess lors du changement de version.
    J’en ai profité pour mettre le code Google dans l’article.

    Merci de ton commentaire !

  4. 22/03/2009 à 23:21 | #4

    Coucou !

    Encore une petite visite de l’errant réunionnais ;)

    Je serai très curieux de savoir comment tu as pu rediriger l’erreur 404 sur un hébergement free… parce que moi j’ai essayé (avec une simple et seule ligne « ErrorDocument 404 /forum/index.php » et il me met direct le site en carafe ! Plus rien du tout ne marche !

  5. fanta78
    23/03/2009 à 21:09 | #5

    Salut l’errant des îles ! Je te confirme que j’ai uniquement ajouté cette ligne dans le fichier .htaccess placé à la racine de mon site : ErrorDocument 404 /index.php

    L’erreur provient peut-être de ton thème : as-tu un fichier 404.php dans le répertoire de ton thème ?
    Car normalement l’utilisateur en erreur est renvoyé vers cette page personnalisable. Et si la page d’erreur perso n’est pas là, et bien… tu retombes dans la page d’erreur (d’horreur ?) de free.

    D’ailleurs j’y pense, ton forum n’est pas sur WordPress mais phpBB. Mais la mécanique de redirection par le .htaccess devrait tout de même fonctionner. Tiens moi au courant, si ça résiste je regarderai + en détail !

  6. 28/03/2009 à 23:05 | #6

    Hello,

    Oui, évidemment j’ai un fichier 404.php à l’endroit où j’en indique le chemin dans le .htaccess (sinon ça serait pas étonnant !). J’y ai mis le script google justement pour proposer une recherche « en interne » (pas tout à fait juste comme terme mais bon).

    Mais il me semble(ait ?) en fait que le .htaccess ne marchait pas chez free ?

    Oui c’est bien du phpBB… un Categorie Hierarchy qui plus est, pas évident pour les thèmes (un peu trop rose/fushia celui que j’ai)… je cherche toujours :)

    Pour l’instant j’ai un peu laissé tombé le 404 après moults essais infructueux. ça résiste bel et bien ! J’ai essayé avec ou sans redirection 404… dès qu’il y a un .htaccess à la racine, pouf… le site est en carafe !

  7. 29/03/2009 à 09:31 | #7

    Salut mAd,
    Free me semble en effet sensible sur le .htaccess. Il m’est arrivé plusieurs fois de planter totalement le site en changeant le réglage de WordPress qui met des url du type http://site/titre-de-l-article plutôt que le standard http://site/p/1. Pour faire ça WordPress écrit tout seul un .htacess à la racine, et bing ! tout est planté.
    Il me mettait un truc dans ce style :

    # BEGIN WordPress

    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]

    # END WordPress

    Et ça chez free, niet.

    Du coup j’ai commencé par essayer avec un fichier .htaccess vide. Ca fonctionnait, donc j’ai tenté le 404 en changeant le contenu comme ci-dessous:
    # BEGIN WordPress
    ErrorDocument 404 /index.php
    # END WordPress

    Et ça marche, avec WordPress. Peut-être que phpBB ne fonctionne pas pareil en cas d’erreur 404. Difficile à trouver ça… Si j’ai le temps j’essaierai de comprendre comment WordPress traite le 404, ça donnera peut -être une piste.

    A+
    Bonne journée !

  8. fanta78
    31/03/2009 à 18:41 | #8

    Sur free ils ne précisent pas quel code est compatible ou pas avec .htaccess. On est bien comme ça…

    Message d’erreur : Erreur 500 Internal Server Error
    Solution
    Vérifiez dans le répertoire dans lequel se trouve le script et/ou dans les répertoires de niveau supérieur la présence d’un (ou plusieurs) fichier(s) .htaccess. Si tel est le cas, renommez-le (les) temporairement en temp.htaccess. Si vos scripts PHP fonctionnent ensuite correctement, c’est qu’une (ou plusieurs) fonctionnalité(s) utilisée(s) dans l’un des fichiers .htaccess n’est (ne sont) plus supportée(s) sur la nouvelle architecture des pages Web. Dans le cas contraire, il s’agit d’un problème temporaire lié aux serveurs PHP assurant le load balancing ou à la configuration du serveur Web. Réactualisez la page. Si le problème persiste, signalez-le dans le newsgroup proxad.free.services.pagesperso.

  9. 10/04/2009 à 20:36 | #9

    Salut à toi,

    J\’ai abandonné l\’option .htaccess pour l\’instant. Peut-être qu\’avec WordPress ça fonctionne avec des restrictions, mais avec phpBB c\’est la sucette assurée… du moins sur le serveur sur lequel je suis.

    Donc je vais pas m\’embêter, c\’est dommage mais pas essentiel non plus.

    Merci bien de tes réponses, instructives et plaisantes. Et pardon pour le HS sur ton sujet \"Wordpress\" !

  10. 16/04/2009 à 12:42 | #10

    Bonjour et merci pour ce petit tuto bien utile !

    J’ai essayé de l’appliquer mais ai un petit problème :
    En cas d’erreur, la page 404 ne s’affiche pas. Juste la page principale, avec la partie principale (le contenu, là où se trouve le post) entièrement vide.
    Pourtant, mon thème propose bel et bien une page 404 !
    Je n’y connais pas grand chose et je comprend rien… Si quelqu’un a une idée…

  11. 16/04/2009 à 16:59 | #11

    Bonjour M. Kaplan ! Lorsque l’on tape une adresse qui n’existe pas sur ton site, on se retrouve sur la vilaine page de Free. Je n’ai pas la page centrale vide dans ton site – bizarre.
    j’ai essayé par exemple : http://lesmotsauxtrousses.free.fr/test

    Sais-tu te connecter en FTP sur Free.fr pour voir l’installation de ton site ? Si tu peux le faire, il devrait suffire de créer un fichier htaccess.txt sur ton ordinateur, et de mettre dedans ceci :

    # BEGIN WordPress
    ErrorDocument 404 /index.php
    # END WordPress

    Ensuite tu te connectes par FTP et à la racine de ton site (là où se trouve l’index.php), copie le fichier htaccess.txt puis change son nom en .htaccess
    Il faut le faire ainsi en deux temps car Windows refuse de créer des fichiers dont le nom commence par un « . » – misère ;-)

  12. 17/04/2009 à 07:13 | #12

    Cela provient de ton thème. Voici le test que j’ai fais sur ton site et le mien :

    http://lesite/index.php/2009/mauvaislien

    fantablog => On reste dans le site, la page principale affiche : « Désolé, il n’y a pas d’article correspondant à votre recherche »
    lesmotsauxtrousses => On reste dans le site, la page principale n’affiche rien

    Mon thème Inove utilise un test dans le fichier index.php du genre :

    si (articles à afficher())
    |——- affiche les articles
    sinon
    |—- crée un div class= »errorbox »
    |—- affiche un message(‘Sorry, no posts matched your criteria.’)
    |—- fermer le div
    fin test

    Autre cas, rester à la racine du site et ajouter n’importe quoi.

    http://lesite/nimportequoi

    fantablog => On affiche la page d’erreur personnalisée du thème « Bienvenue sur cette page d’erreur. »
    lesmotsauxtrousses => On affiche la page d’erreur de Free.fr

    Ici ce sont les 404.php + .htaccess qui font effet.

  13. 08/04/2012 à 23:02 | #13

    Bonsoir,
    J’étais justement en train de chercher comment gérer les erreurs 404.
    Merci pour le tuyaux qui semble toujours d’actualité.

  1. Pas encore de trackbacks