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] Le RewriteRule ne fonctionne plus en ajoutant un -


Sujet :

Apache

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Janvier 2005
    Messages : 41
    Points : 38
    Points
    38
    Par défaut [URL rewriting] Le RewriteRule ne fonctionne plus en ajoutant un -
    Bonjour à tous

    Je bloque depuis une bonne heure sur une réécriture d'url,
    je n'arrive pas à comprendre pourquoi :
    cette commande fonctionne sans problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^conseilspratiques/([0-9]+).html$ conseils-pratiques.php?page=$1 [L]
    Mais si je veux ajouter un signe moins dans "conseils-pratiques" soit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^conseils-pratiques/([0-9]+).html$ conseils-pratiques.php?page=$1 [L]
    J'ai une page blanche (je n'ai pas accès aux log d'apache)

    Y aurait il une bonne âme qui aurait la gentillesse de me montrer le chemin de la vérité ?

    Merci d'avance

    Moog

  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 marche mieux en mettant un \ devant le - ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^conseils\-pratiques/([0-9]+).html$ conseils-pratiques.php?page=$1 [L]

    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 membre du Club
    Inscrit en
    Janvier 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Janvier 2005
    Messages : 41
    Points : 38
    Points
    38
    Par défaut
    Merci mais non ca ne marche pas ... J'ai une erreur 404

  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
    Ajoute en haut de ton .htaccess et teste avec et sans \.

    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 membre du Club
    Inscrit en
    Janvier 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Janvier 2005
    Messages : 41
    Points : 38
    Points
    38
    Par défaut
    ... merci mais j'ai exactement la même erreur

  6. #6
    Nouveau membre du Club
    Inscrit en
    Janvier 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Janvier 2005
    Messages : 41
    Points : 38
    Points
    38
    Par défaut
    Je viens de trouver une solution qui ne m'explique pas d'où vient le problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^conseils-pratiques/([0-9]+).html$ conseils-pratiques.php?page=$1 [L]
    ne marche pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^conseils-pratique/([0-9]+).html$ conseils-pratiques.php?page=$1 [L]
    marche !

    c'est à dire en enlevant le s à "conseils-pratiques" !




    Mais le terme "conseils-pratiques" au pluriel fonctionne correctement lorsque j'enlève le + dans ma regex soit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^conseils-pratiques/([0-9]).html$ conseils-pratiques.php?page=$1 [L]

    J'avoue que j'y comprend plus rien ....

  7. #7
    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
    Tu peux nous donner le fichier .htaccess complet ? Si le Options -MultiViews ne change rien, je soupçonne un conflit avec une autre règle, genre une règle qui dit d'ajouter l'extension .php si le fichier demandé n'existe pas et n'est pas un répertoire

    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

  8. #8
    Nouveau membre du Club
    Inscrit en
    Janvier 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Janvier 2005
    Messages : 41
    Points : 38
    Points
    38
    Par défaut
    Merci _Mac_
    J'ai laissé le problème de coté pendant quelques jours en pensant que j'y verrai plus clair.

    Mais rien à faire ...

    Voici un test fichier .htaccess

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Options -MultiViews
    RewriteEngine On
    RewriteRule ^conseilspratiques/a/([0-9]+)$ index.php?page=$1 [L]
    RewriteRule ^conseilspratiques/ab/([0-9]+)$ index.php?page=$1 [L]
    RewriteRule ^conseilspratiques/abc/([0-9]+)$ index.php?page=$1 [L]
    RewriteRule ^conseilspratiques/abcd/([0-9]+)$ index.php?page=$1 [L]
    RewriteRule ^conseilspratiques/abcde/([0-9]+)$ index.php?page=$1 [L]
    RewriteRule ^conseilspratiques/abcdef/([0-9]+)$ index.php?page=$1 [L]
    RewriteRule ^conseilspratiques/abcdefg/([0-9]+)$ index.php?page=$1 [L]
    et mon fichier index.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
    echo 'id = '.$_GET['id'];
    ?>
    J'ai testé les 6 url suivantes sur un de mes serveurs qui fonctionne bien :

    /conseilspratiques/a/1
    /conseilspratiques/ab/1
    /conseilspratiques/abc/1
    /conseilspratiques/abcd/1
    /conseilspratiques/abcde/1
    /conseilspratiques/abcdef/1
    /conseilspratiques/abcdefg/1

    Tout fonctionne correctement.
    Dans tous les cas ma page s'affiche correctement (affiche id = 1)

    Par contre sur le serveur qui me pose problème

    /conseilspratiques/a/1
    OK -> affiche id = 1

    /conseilspratiques/ab/1
    OK -> affiche id = 1

    /conseilspratiques/abc/1
    OK -> affiche id = 1

    /conseilspratiques/abcd/1
    OK -> affiche id = 1

    /conseilspratiques/abcde/1
    ERREUR 404

    /conseilspratiques/abcdef/1
    page blanche

    /conseilspratiques/abcdefg/1
    page blanche


    J'ai l'impression que cela vient de la longueur de l'url ! J'ai testé avec d'autres chaine que abcdefg, toujours le même problème au même endroit !

    Je sais maintenant que le problème ne vient pas de mon htaccess... mais de la configuration d'apache probablement, est ce que quelqu'un à déjà rencontré ce genre de chose ?

    Merci

  9. #9
    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
    Apache tourne sur une machine Windows ? Dans quel répertoire (C:\...) se trouve le document root ? C'est possible que sous Windows, si tu mets ton document root trop loin dans l'arborescence, vu qu'il y a une super limitation qui fait que les chemins de plus de 255 caractères ne sont pas reconnus, il y ait un problème.

    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

  10. #10
    Nouveau membre du Club
    Inscrit en
    Janvier 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Janvier 2005
    Messages : 41
    Points : 38
    Points
    38
    Par défaut
    Bien vu mais non c'est bien un serveur linux

  11. #11
    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
    fallait le tenter !!

    Que racontent les logs d'erreur d'Apache ? Active aussi les logs de mod_proxy pour voir ce que le module raconte sur le sujet.

    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

  12. #12
    Nouveau membre du Club
    Inscrit en
    Janvier 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Janvier 2005
    Messages : 41
    Points : 38
    Points
    38
    Par défaut
    Je reprend les tests précédents :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    www.monsite.com/conseilspratiques/a/7
    www.monsite.com/conseilspratiques/ab/7
    www.monsite.com/conseilspratiques/abc/7
    www.monsite.com/conseilspratiques/abcd/7
    www.monsite.com/conseilspratiques/abcde/7
    www.monsite.com/conseilspratiques/abcdef/7
    www.monsite.com/conseilspratiques/abcdefg/7

    Mon fichier de logs d'accès :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    77.12.12.0 - - [01/Apr/2010:10:21:05 +0200] "GET /conseilspratiques/a/7 HTTP/1.1" 200 71
    77.12.12.0 - - [01/Apr/2010:10:21:08 +0200] "GET /conseilspratiques/ab/7 HTTP/1.1" 200 71
    77.12.12.0 - - [01/Apr/2010:10:21:12 +0200] "GET /conseilspratiques/abc/7 HTTP/1.1" 200 71
    77.12.12.0 - - [01/Apr/2010:10:21:16 +0200] "GET /conseilspratiques/abcd/7 HTTP/1.1" 200 71
    77.12.12.0 - - [01/Apr/2010:10:21:19 +0200] "GET /conseilspratiques/abcde/7 HTTP/1.1" 404 319
    Mon fichier de logs d'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Thu Apr  1 10:21:19 2010] [error] [client 77.12.12.0] File does not exist: /xx/xx/xx/conseilspratiques/abcde/7

    Bref rien de pertinents dans les logs apache ...

  13. #13
    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
    Au total, xx/xx/xx/conseilspratiques/abcde/7 fait combien de caractères ?

    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

  14. #14
    Nouveau membre du Club
    Inscrit en
    Janvier 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Janvier 2005
    Messages : 41
    Points : 38
    Points
    38
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Thu Apr  1 10:42:32 2010] [error] [client 77.12.12.0] File does not exist: /srv/www/htdocs/XXXXXXXXXXXXXX/XXXXXXXX/rewrite/conseilspratiques/abcde/7
    Ici 73 caractères

  15. #15
    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


    Et que racontent les logs de mod_rewrite ? Ton .htaccess ne contient que ce que tu nous as donné hier à 16h50 ?

    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

  16. #16
    Nouveau membre du Club
    Inscrit en
    Janvier 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Janvier 2005
    Messages : 41
    Points : 38
    Points
    38
    Par défaut
    Oui le .htaccess n'a pas bougé depuis hier !

    Mais le probleme vient d'être résolu !

    Le serveur Apache est un 1.3 et apparemment il a besoin qu'on lui tienne la main faire une RewriteRule

    Les réécriture fonctionnent avec cet .htaccess
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Options -MultiViews
    RewriteEngine On
    RewriteCond $0 ^conseilspratiques/(a|ab|abc|abcd|abcde|abcdef|abcdefg)/[0-9]+$
    RewriteRule ^conseilspratiques/.+/([0-9]+)$ index.php?page=$1 [L]
    Merci à toi _Mac_ pour t'être penché sur le problème

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [URL rewriting] la redirection ne fonctionne pas
    Par jobo13 dans le forum Apache
    Réponses: 2
    Dernier message: 08/03/2009, 18h51
  2. Module Url rewritting activé mais ne fonctionne pas
    Par Gregory.M dans le forum Apache
    Réponses: 4
    Dernier message: 02/02/2009, 10h18
  3. [URL Rewriting] erreur RewriteRule html->php
    Par atchoumen dans le forum Apache
    Réponses: 2
    Dernier message: 09/06/2008, 20h05
  4. [URL Rewriting] Ma réécriture ne fonctionne pas
    Par SebastienM dans le forum Apache
    Réponses: 6
    Dernier message: 04/06/2008, 16h06
  5. Réponses: 2
    Dernier message: 19/04/2008, 16h52

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