IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

[URL rewriting] problème redirection 404


Sujet :

Apache

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Février 2011
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut [URL rewriting] problème redirection 404
    Bonjour a tous et merci d'avance à ceux qui vont prendre le temps de m'aider,

    Alors voila, je suis en stage et mon patron m'a demander de résoudre un problème qui est présent depuis des lustres sur le site, le problème est le suivant :

    Les URL rewriting fonctionnent très bien mais simplement lorsque l'on met une URL avec une sous catégorie erronée du style :

    http://domaine/dossier/Categorie/Sou...orie(erronée)/, Apache renvoie HTTP 200 alors qu'il devrait renvoyer HTTP 404

    Et le plus étrange est que avec cette URL il renvoie bien une erreur 404 (sans le / de la fin):

    http://domaine/dossier/Categorie/Souscategorie(erronée)

    Je ne connais rien en URL rewriting donc c'est pour ça que je vous demande de l'aide svp...

    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Ca serait quand même pas mal d'avoir les règles de réécriture pour pouvoir t'aider, en fait

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Février 2011
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut details
    Ben en fait mon fichier fait plus de 1000 lignes et c'est pas moi qui l'ai écris donc j'y comprends pas grand chose...

    Mais d'après ce que j'ai compris je pense que ceci pourrais t'aider :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^([&A-Za-z0-9\s-]*)/([&A-Za-z0-9\s-]*)/([&A-Za-z0-9\'\(\)\s-'"]*)/$ /dossier1/dossier2/fichier.php?premierid=$1&secondid=$2&troisiemeId=$3 [L]
    cela correspond à la réécriture qui m'intéresse...

    Mais c'est quand même bizarre que juste pour un "/" il me renvoi pas la bonne réponse HTTP...

    Par contre je viens de voir que je n'ai pas de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^.*$ /error.php [L]
    dans mon htaccess... peut être que c'est du à ça non ?

    Merci beaucoup.
    Simdou.

  4. #4
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Bah oui, c'est logique : ce n'est pas Apache qui sait que /dossier/Categorie/Souscategorie(erron%C3%A9e)/ n'existe pas. Tout ce que fait Apache c'est identifier des masques et appliquer bêtement une réécriture. Pour cette URL précise, Apache utilise bien l'URL que tu donnes et donc appelle au final /dossier1/dossier2/fichier.php?premierid=dossier&secondid=Categorie&troisiemeId=Souscategorie(erron%C3%A9e). Cette URL fonctionne, Apache est content, il a fait son boulot. Que derrière, le paramètre troisiemeId n'ait pas une valeur valide, ce n'est pas son problème, c'est le problème du fichier.php : fichier.php doit vérifier et valider les paramètres qu'on lui envoie avant de faire quoi que ce soit. Si l'un des paramètres ne lui plaît pas, c'est à lui de le dire et d'une certaine manière : 404 par exemple. Mais c'est à fichier.php de traiter ce cas, pas Apache. Car si tu veux que ce soit Apache qui s'en occupe, ce n'est pas 1000 lignes que fera ton .htaccess mais plusieurs centaines de milliers

    Moralité : ajoute des tests de validation à fichier.php tout en haut (avant la première balise HTML) pour faire header("404 Not Found").

    Pour info, ça sort directement une erreur 404 sans le / car aucune règle de réécriture ne correspond à ce cas, et donc là, c'est vraiment Apache qui sort l'erreur 404 car il ne trouve rien qui correspond à ce qu'on lui demande.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Février 2011
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut merci
    Merci à toi, je vais essayer ça après mes vacances bien méritées!
    Je te tiens au courant...
    A+

Discussions similaires

  1. Réponses: 11
    Dernier message: 28/02/2009, 00h50
  2. Réponses: 2
    Dernier message: 29/11/2007, 18h41
  3. Réponses: 3
    Dernier message: 31/07/2007, 16h40
  4. URL Rewriting problème de regexp ?
    Par pierrickg dans le forum Apache
    Réponses: 2
    Dernier message: 10/07/2007, 13h35
  5. [URL Rewriting] Problème URL Rewriting -> CSS
    Par Cartman.inc dans le forum Apache
    Réponses: 8
    Dernier message: 23/04/2007, 14h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo