Des erreurs 404 cachées dans mon URL Rewriting

WRInaute discret
Bonjour à tous,

Un soucis d'url rewriting sur mon site : tout fonctionne très bien pour les visiteurs, toutes les pages sont correctement affichées, respectant mes "RewriteRules". Cependant, l'une d'entre elles fait du zèle : chaque chargement d'une page sur le site par un visiteur (n'importe quelle page) entraîne le chargement d'une à trois pages d'erreur 404 sur le serveur (invisible pour le visiteur).

J'ai fait une surveillance de ma page d'erreur qui s'est affichée 5000 fois en deux jours ! Dommage pour la charge du serveur. Ma deuxième inquiétude vient des robots des moteurs de recherche qui, si ils voient le chargement de ces pages 404 ne vont pas apprécier !

Une portion de mon fichier .htaccess :
Code:
ErrorDocument 404 http://www.monsite.com/erreur/404.php

RewriteRule ^page/([^-/]+)/([^-]+)\.htm?$ /index\.php?var1=$1&var2=$2 [L,NC,QSA]
Si l'un d'entre vous avait une idée ... :roll:
 
A
Anonymous
Guest
Une piste, dans la commande de RewriteRule ce n'est pas la peine d' "escaper" les caractères dans la chaine de substitution (mais je ne sais pas trop l'impact -> à tester).

Code:
RewriteRule ^page/([^-/]+)/([^-]+)\.htm?$ /index.php?var1=$1&var2=$2 [L,NC,QSA]

Pour être sûr de ce que tu veux, confirmes les hypothèses suivantes qui correspondent aux actions du mod_rewrite sur ta règle

- /page/dir1/fic1.htm -> /index.php?var1=dir1&var2=fic1
- /page/dir1/dir2/fic1.htm -> /index.php?var1=dir1&var2=dir2/fic1
- /page/dir-1/fic1.htm -> pas de rewrite
- /page/dir1/fic-1.htm -> pas de rewrite
- /page/dir-1/dir2/fic1.htm -> pas de rewrite
- /page/dir1/dir-2/fic1.htm -> pas de rewrite
- /page/dir1/dir2/fic-1.htm -> pas de rewrite
 
WRInaute discret
Code:
RewriteRule ^page/([^-/]+)/([^-]+)\.htm?$ /index.php?var1=$1&var2=$2 [L,NC,QSA]

Ce rewrite est prévu pour afficher les pages suivantes :
Code:
http://www.monsite.com/page/var1/var2.htm
ou 
http://www.monsite.com/page/var1/var2_action.htm
Pour les hypothèses http://www.monsite.com/page/var1.htm, j'ai un autre rewrite :
Code:
RewriteRule ^page/([^-/]+)\.htm?$ /index\.php?var=$1 [L,NC,QSA]
Bien entendu, ces répertoires sont virtuels et ne sont là que pour la lisibilité et le référencement.

Pour ce qui est de l'impact des '\', j'ai essayé sans ... sans changement. Mais j'avais été contraint de les mettre sur un ancien serveur alors ...

NB :
Code:
RewriteRule ^page/(.*)/(.*)\.htm?$ /index.php?var1=$1&var2=$2 [L,NC,QSA]
fonctionne comme :
Code:
RewriteRule ^page/([^-/]+)/([^-]+)\.htm?$ /index.php?var1=$1&var2=$2 [L,NC,QSA]
 
A
Anonymous
Guest
As tus accès au logs de ton serveur HTTP pour savoir sur quels éléments l'erreur 404 est retournée?

Est ce que des images ou fichiers inclus dans tes pages entrent dans une des regles ... pour ne pas en ressortir.
 
WRInaute discret
darkfire a dit:
As tus accès au logs de ton serveur HTTP pour savoir sur quelles éléments le 404 est retourné?[/code] Certainement, mais je ne me suis pas encore attardé la-dessus !
darkfire a dit:
Est ce que des images ou fichiers inclus dans tes pages entrent dans une des regles ... pour ne pas en ressortir.
Ma règle concernant les images :
Code:
RewriteRule ^.*\.(gif|png|jpe?g|swf|ico|css|js) - [L]
Mais le problème se pose aussi pour des pages sans images (j'ai fait un page test.php qui ne ocntenait qu'un echo "coucou" et une page 404 était appelée sur le serveur.
Mais n'est-ca pas un peu bizarre une page 404 qui s'ouvre à la lecture du fichier htaccess ?
 
A
Anonymous
Guest
Eventuellement post (ou envois moi par MP si tu préfères) ton htaccess et l'url de la page de test qui provoque le 404, je testerai tout ça demain sur mon serveur local.
 
Discussions similaires
Haut