.htaccess et 404

WRInaute discret
Bonjour :D ,

Je crois que la question avait déjà été posée sur ce forum mais impossible de remettre la main dessus... :oops:

Je viens de mettre un fichier .htaccess à la racine de mon site qui redirige directement sur la homepage en cas d' erreur 404.

J' ai vérifié, il n' y a pas en ce moment d' erreur 404 sur mon site, MAIS si il y en avait une et que Google tombe dessus, il se trouverait normalement dirigé vers la homepage, n' est-ce-pas ? Ne risque-t' il pas, alors, de considérer ceci comme du spam ?

Peut-on utiliser .htaccess sans risque pour ramener les erreurs 404 vers la homepage ou est-ce trop dangereux ?
 
WRInaute passionné
bipbip a dit:
J' ai vérifié, il n' y a pas en ce moment d' erreur 404 sur mon site, MAIS si il y en avait une et que Google tombe dessus, il se trouverait normalement dirigé vers la homepage, n' est-ce-pas ? Ne risque-t' il pas, alors, de considérer ceci comme du spam ?

Peut-on utiliser .htaccess sans risque pour ramener les erreurs 404 vers la homepage ou est-ce trop dangereux ?
Tu peux sans problème utiliser le "ErrorDocument 404 /fichier_erreur.html" parce tu renverras une entête "404 - not found"

Par contre, si tu utilises la même ligne avec une URL complète comme dans
ErrorDocument 404 h**p://www.tonsite.tld/fichier_erreur.html
tu renverras une entête "200 - found" qui n'est pas bonne.

Et voila :wink:

Dan
 
WRInaute discret
Salut Dan :D !

En fait j 'ai suivi les conseils d' un de tes excellents articles de WebRankInfo.
Au fait, BRAVO ! Ceux-cis sont très bien écrits, complets, clairs et explicites, ils m' ont beaucoup appris et personnellement j' en profite pour t' en remercier.

Alors j' ai mis:
Code:
ErrorDocument 404 /index.php
au lieu de faire une page destinée aux erreurs 404 que j' aurais appellé mettons: fichier_erreur.html pour reprendre ton exemple et de mettre pour le coup:
Code:
ErrorDocument 404 /fichier_erreur.html
dans mon .htaccess .

J' avais peur que dans le cas de plusieurs erreurs 404 sur le site (sait-on jamais...) google voit çà comme du spam et le pénalise...
 
WRInaute passionné
bipbip a dit:
Euh... au fait c' est quoi une entête "200 - found" ? :oops:
C'est l'entête qui est envoyée par le serveur quand il a trouvé la page... une entête normale :wink:
Dans le cas de pages hébergées sur un cluster, tu aurais de manière systématique une entête "303 - Moved temporarily" ou "déplacée temporairement" .
Ce qui est normal sur un cluster comme tu ne sais jamais à l'avance quelle machine va servir la page

A+

Dan

PS: merci pour le commentaire sur l'article, cela fait toujours plaisir!
 
WRInaute discret
Ah !... Tiens ? Je vous faire part d' un truc (certainement évident pour vous, mais bon...je tenais quand-même à vous faire partager ma découverte).

Comme tu dis hetzeld:
Par contre, si tu utilises la même ligne avec une URL complète comme dans
ErrorDocument 404 h**p://www.tonsite.tld/fichier_erreur.html
tu renverras une entête "200 - found" qui n'est pas bonne.
Ce en quoi je te crois sur parole... :|
On utilise là un lien relatif et donc il faut bien penser à ce que les liens soient absolus dans la page d' erreur 404 personnalisées.
C' est idiot mais comme ma page et tous ses liens se trouvaient à la racine du site, je m' était contenté des liens relatifs. En fait je me suis aperçu que si l' on invente des repertoires fantômes, le .htaccess, même s'il se trouve à la racine du site et que ces répertoires n' existent pas, il va les considèrer quand-même. :mrgreen:

PS: merci pour le commentaire sur l'article, cela fait toujours plaisir!
Vraiment de rien, c' est sincère c' est bien la moindre des choses. :wink:
 
WRInaute passionné
bipbip a dit:
En fait je me suis aperçu que si l' on invente des repertoires fantômes, le .htaccess, même s'il se trouve à la racine du site et que ces répertoires n' existent pas, il va les considèrer quand-même. :mrgreen:
Ce n'est pas .htaccess, c'est ton navigateur!
En fait, si tu fais une réécriture du genre:
Code:
RewriteRule ^photos/([a-z]+)/([a-z]+)\.html$ montrephotos.php?affichage=$1&pays=$2 [L]
Avec en entrée "photos/diaporama/bresil.html" par exemple, ton navigateur va s'imaginer qu'il est, vu l'URL demandée, dans le répertoire /photos/diaporama/ et va donc tenter de résoudre tous les liens relatifs à partir de ce répertoire qui n'existe pas. :? C'est tout de même logique, comme le navigateur ne peut pas deviner qu'il y a eu une réécriture.

Deux solutions:
1. n'utiliser que des liens absolus dans la page fournie
2. utiliser la balise <base href="...."> entre <head> et </head> (préférable)
La balise <base...> donne le répertoire à partir duquel tous les liens relatifs seront résolus.

Cette approche complique un peu les explications pour les débuts en URL rewriting. C'est la raison pour laquelle j'avais utilisé des réécritures en évitant ces "répertoires virtuels". Je rajouterai tout de même une explication dans la suite du texte, très bientôt. :wink:

A+

Dan
 
WRInaute discret
Ah ? C' est la première fois que j' en entends parler :) .
Quand tu dis hetzeld :
2. utiliser la balise <base href="...."> entre <head> et </head> (préférable)
La balise <base...> donne le répertoire à partir duquel tous les liens relatifs seront résolus.

Donc il faut mettre entre <head></head> de l' index une balise
Code:
<base href="http://www.monsite.com></base>
(pour le cas où j' ai défini l' index dans mon .htaccess).
Ainsi, les liens de l' index ne doivent plus nécessairement êtres absolus.

Est-ce cela ou bien ais-je mal compris ?...

Avant de modifier ma page j' ai fait quelques recherches superficielles mais sans succès.

Alors avant de poster, je suis allé voir à -https://www.webrankinfo.com/tralali/tralala-j'ecris-n'importe-quoi
et quand je tombe sur la page intitulée "Erreur ! La page demandée n'existe pas..." je constate que cette fameuse balise <base...> n' y figure pas et que les liens relatifs des images y sont cassés. :?

Le remède serait donc simplement l' emploi de la balise <base...> au lieu d' un parfois fastidueux renommage de tous les liens. :D
 
WRInaute discret
Je confirme: çà marche !!! :D

Seulement je n' ai pas fermé la balise par l' hypothétique </base> que j' avais glissé plus haut.
Cela fonctionne très bien ainsi sans me retourner de message d' erreur et, utilisant dreamweaver comme éditeur html, l' application ne m' a pas proposé d' office un </base> lorsque j' ai entré la balise comme elle le fait pourtant habituellement...

Merci car il est vrai que l' utilisation de liens relatifs améliore la réactivité d' un site par rapport aux liens absolus.

Par ailleurs, je me demandais si les liens absolus étaient par contre meilleurs pour Google ? D' intuition, une intuition toute masculine cependant :p , j' aurais dit oui ...(mais il se peut très bien que cela n' y change strictement rien)
Qu' en pensez-vous ?
 
WRInaute passionné
Tu as raison ... il ne faut pas le </base> final.

En relisant mon message, je vois que ce n'est pas moi qui t'ai proposé de mettre </base>, je préfère :lol:


Dan
 
Olivier Duffez (admin)
Membre du personnel
les liens absolus ne comptent pas plus que les liens relatifs
la différence est plutôt liens internes / externes
sinon je me demande si la balise base ne doit pas s'écrire comme ça
Code:
<base href="...." />
dans le standard XHTML ? notre spécialiste XHTML nous le confirmera peut-être ?
 
WRInaute passionné
WebRankInfo a dit:
...sinon je me demande si la balise base ne doit pas s'écrire comme ça
Code:
<base href="...." />
dans le standard XHTML ? notre spécialiste XHTML nous le confirmera peut-être ?
Ce n'est pas moi le spécialiste, mais dans le standard XHTML, tu as raison.
Le seul problème est que ce n'est pas interprété correctement par les -très- anciens navigateurs. Par contre, tous les navigateurs de la troisième génération comprennent cette terminaison balise :wink:
Je pense qu'elle peut poser problème avec les outils de validation, selon le "doctype" défini.

Dan
 
WRInaute discret
Oui hetzeld, je m' étais posé tout seul la question de la fermeture de la balise :
je n' ai pas fermé la balise par l' hypothétique </base> que j' avais glissé plus haut.

Et WRI, quand tu dis que
les liens absolus ne comptent pas plus que les liens relatifs
alors dans ce cas je ne vois pas vraiment d' utilisté à utiliser des liens absolus, car j' avais lu (je ne sais plus où) que comme ceux-ci obligeaient le navigateur à repasser par tout les repertoires, la navigation perdait en fluidité...?

:? Je n 'y comprend vraiment rien à cette validation par le W3C, toujours lorsque je propose une pages à "The W3C MarkUp Validation Service", j' ai en retour nombre d' erreurs sur des pages pourtant fonctionnelles. Même des pages complètement basiques faites en utilisant le plus simplement l' interface de dreamweaver et en sans modifier le code retournent des erreurs et ne sont pas validées.
Je ne sais pas ce qui est supporté par le W3C mais c' est vraiment décourageant, du coup j' ai laissé tombé.
Je m' interroge sur l' interêt d' une telle validation d' autant plus que les différents navigateurs ont leurs caprices, notamment sur mac où des libertés avec le langage et l' utilisation parfois de chemins de traverses sont indispensables pour une interprètation homogène entre Opera, chimera, la dernière version (encore beta) de mozilla, et netscape navigator qui causent tant de mal pour le développement.
Bien sûr, je préfère comme beaucoup me fier à MSIE mais sans pour autant prendre le parti de laisser tomber les autres configurations.

Avez-vous des exemples de pages valides et qui soient un tant soit peu acceptables sur le plan esthétique.
J' ai testé la page même du W3C MarkUp Validation Service (http://validator.w3.org/) par curiosité et évidemment elle est validée mais on ne peut pas dire quelle soit un modèle sur le plan visuel :lol: .
 
Olivier Duffez (admin)
Membre du personnel
notre ami webmaster de -http://www.webcrealisation.com/ pourra sûrement te répondre. En attendant, va voir son site : il a un très beau look et respecte scrupuleusement les standards du W3C

sinon je n'ai pas bien compris le pb avec les liens absolus. Pourquoi dis-tu que
ceux-ci obligeaient le navigateur à repasser par tout les repertoires, la navigation perdait en fluidité
???
 
WRInaute discret
Ok merci :D je vais aller le visiter.

Pour ce qui est des liens, c' est embêtant car j' oublié la source... Cependant j' ai lu, sans doute dans un tutorial (peut-être était-ce sur allhtml, mais je ne peux vraiment pas le garantir) que comme les liens relatifs demandaient moins de travail au navigateur car proposant un chemin plus court pour accèder aux pages, celles-ci étaient du coup généralement accessibles plus rapidement par ce biais.
 
WRInaute discret
Ah ! J' oubliais...
Pour le respect scrupuleux des standards du W3C , quel en est concrètement l' interêt sinon l' amour de l' art ?
 
WRInaute passionné
Bipbip,

Dans l'absolu, tu as raison. Mais on ne joue que sur quelques millisecondes.
Je ne suis pas convaincu que le surfeur voie la différence.

De toutes façons, si l'accès au fichier .htaccess est autorisé (avec le AllowOverride qui va bien dans le fichier httpd.conf), le serveur Apache accèdera à tous les répertoires intermédiaires depuis la racine... d'où kif-kif :wink:

Dan
 
Discussions similaires
Haut