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 :

Repertoire virtuel fonctionne dans un sens mais pas dans l'autre


Sujet :

Apache

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Webmarketer
    Inscrit en
    Décembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmarketer
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Repertoire virtuel fonctionne dans un sens mais pas dans l'autre
    Salut à tous,

    J'ai un problème de rewriting je me demandais si vous vous pourriez avoir la réponse, après avoir perdu un après midi dessus

    J'ai une URL qui ressemble à ça :
    -http://www.monsite.com/article_faq.php?id=3&url_faq=jolie-url-propre

    Je voudrais qu'elle ressemble à ça :
    -http://www.monsite.com/faq/3-jolie-url-propre

    (création d'un répertoire virtuel /faq/ + ID en début de segment)

    J'ai donc créé cette règle dans mon htaccess:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^faq/([0-9]+)-([A-Za-z0-9-]+)$ /article_faq.php?id=$1&url_faq=$2 [L]
    => elle ne fonctionne pas (404)

    Par contre si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^faq-([0-9]+)-([A-Za-z0-9-]+)$ /article_faq.php?id=$1&url_faq=$2 [L]
    Je n'ai plus de répertoire virtuel /faq/, j'ai mis un tiret à la place, cela donne :
    -http://www.monsite.com/faq-3-jolie-url-propre
    et cela fonctionne comme cela.

    Ce qui me trouble vraiment, c'est que si je le fais à l'envers dans ce sens là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #RewriteRule ^faq/([A-Za-z0-9-]+)-([0-9]+)$ /article_faq.php?id=$2&url_faq=$1 [L]
    là ça marche bien :
    -http://www.monsite.com/faq/jolie-url-propre-3
    J'ai bien mon répertoire virtuel /faq/, mais je veux l'id au début du dernier segment, pas à la fin.

    Cela marche aussi si je fais des tests genre
    -http://www.monsite.com/faq/nimpssssssss-3-jolie-url-propre


    Mais moi je le veux vraiment comme ça :
    -http://www.monsite.com/faq/3-jolie-url-propre
    impossible à arriver à ce résultat avec cette règle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^faq/([0-9]+)-([A-Za-z0-9-]+)$ /article_faq.php?id=$1&url_faq=$2 [L]

    Je commence à me frapper la tête dans les murs là, j'ai essayé 50 trucs différents.

    J'espère que vous aurez une idée pour pallier à mes maigres compétences en rewriting

    Merci

  2. #2
    Membre éprouvé Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Points : 1 275
    Points
    1 275
    Par défaut
    Je ne vois effectivement pas ce qui empêche ta rewriterule de fonctionner...

    C'est peut-être un bug côté mod_rewrite ou Apache...
    Quelle version d'Apache utilises-tu ?
    Si ta version n'est pas la dernière, essaie d'installer un Apache plus récent et valide le fonctionnement.
    Si c'est pas mieux, essaie de demander sur l'IRC ou la mailing-list apache, voire déclarer un bug.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Webmarketer
    Inscrit en
    Décembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmarketer
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci pour ta réponse Marc, ta solution me semble un peu extrême mais pourquoi pas, je vais demander aux mecs qui gèrent le serveur si ça peut venir de là.

    (pour connaître la version d'apache, je la trouve avec phpinfo c'est ça ?)

  4. #4
    Membre éprouvé Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Points : 1 275
    Points
    1 275
    Par défaut
    Solliciter la mailing-list apache n'est pas extrême... Ils sont là pour ça et se feront un plaisir de t'aider je pense.

    Pour vérifier la version d'Apache, tu peux le voir avec phpinfo ou sur le serveur lancer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /chemin_vers_httpd/httpd -version

  5. #5
    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
    Problème toujours d'actualité ? Si oui, peux-tu donner le .htaccess entier ? Il se pourrait qu'il y ait un "conflit" avec une autre règle.

    Par ailleurs, si tu as accès à la configuration centrale d'Apache (httpd.conf ou équivalent), avec le mode debug pour mod_rewrite pour savoir ce qui se passe avec le /.

Discussions similaires

  1. Script qui fonctionne dans un onglet mais pas dans un popup
    Par lwolf dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 29/08/2012, 21h13
  2. Réponses: 11
    Dernier message: 09/09/2010, 03h53
  3. Requete SQL BETWEEN fonctionne dans le bash mais pas dans mon script?
    Par ssc37 dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 09/03/2009, 12h01
  4. Réponses: 9
    Dernier message: 13/03/2008, 02h34
  5. [RegEx] Regex qui fonctionne dans un preg_replace mais pas dans un ereg
    Par méphistopheles dans le forum Langage
    Réponses: 4
    Dernier message: 31/03/2007, 12h56

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