404 Personnalisée qui renvoit un 302 : Problématique ?

WRInaute discret
Bonjour, j'ai constaté que lorsque une page n'existe pas sur mon site :
- Ma page 404 perso s'affiche OK
- Mais le code de l'entête HTTP renvoyé est 302 (document déplacé de façon temporaire)
Code:
ErrorDocument 400 http://www.fcbarcelonaclan.com/index.php?erreur=400
ErrorDocument 401 http://www.fcbarc*lonacl**.com/index.php?erreur=401
ErrorDocument 403 http://www.fcbarc*lonacl**.com/index.php?erreur=403
ErrorDocument 404 http://www.fcbarc*lonacl**.com/index.php?erreur=404
ErrorDocument 405 http://www.fcbarc*lonacl**.com/index.php?erreur=405
ErrorDocument 406 http://www.fcbarc*lonacl**.com/index.php?erreur=406
ErrorDocument 408 http://www.fcbarc*lonacl**.com/index.php?erreur=408
ErrorDocument 410 http://www.fcbarc*lonacl**.com/index.php?erreur=410
ErrorDocument 411 http://www.fcbarc*lonacl**.com/index.php?erreur=411
ErrorDocument 414 http://www.fcbarc*lonacl**.com/index.php?erreur=414
ErrorDocument 500 http://www.fcbarc*lonacl**.com/index.php?erreur=500
ErrorDocument 503 http://www.fcbarc*lonacl**.com/index.php?erreur=503
Donc problème car les moteurs ne mettront jamais à jour !!!

De plus je veux récupérer les visiteurs d'anciens sites, donc j'ai placé des .htaccess comme celui-ci :
Code:
RedirectPermanent / http://www.fcbarc*lonacl**.com/
Et surprise, on débarque sur la page Erreur 404 !

Si quelqu'un a une explication et/ou une solution...
 
WRInaute impliqué
Pour le premier point, c'est normal : C'est toi qui lui dis "s'il y a une erreur, on repart en hhtp...", donc il fait une redirection.
Donc, mets :
Code:
ErrorDocument 404 /index.php?erreur=404
pour que le serveur fasse sa salade en interne.

Pour le second point, c'est normal aussi... du moins si tu as changé la structure de ton site. Si tu veux que toutes tes anciennes pages mènent à la racine de ton nouveau, utilise plutôt l'Url rewriting.
Si tu ne peux pas, mets une ligne de redirection pour chaque url de ton ancien site.

Edit: ... ou un redirectMatch du style
Code:
RedirectMatch 301 (.*) http://www.domaine.tld/index.php
 
WRInaute discret
Excellent ! Je te remercie !

Je ne connaissais pas RedirectMatch et j'avais mis RedirectPermanent.
J'ai vu que la différence était au niveau des "expressions régulières" mais je ne suis pas sûr d'avoir bien saisi...

Sinon j'ai vu à la place de :
Code:
RedirectMatch 301 (.*) http://www.domaine.tld/
Ceci :
Code:
RedirectMatch 301 ^/ http://www.domaine.tld/

Est-ce en rapport avec les dossiers et/ou les fichiers ?
 
WRInaute impliqué
(.*) = "n'importe quel caractère répété un nombre de fois quelconque"

^/ = "une demande qui commence par / "
 
Discussions similaires
Haut