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] Ne prendre qu'une variable pour la réécriture


Sujet :

Apache

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 240
    Points : 81
    Points
    81
    Par défaut [URL Rewriting] Ne prendre qu'une variable pour la réécriture
    bonjour,

    J'aimerais utiliser l'url rewriting pour ne prendre qu'une variable (titre de l'article)
    sans la deuxieme variable (id de l'article)

    Voici mon lien actuel
    index.php?nom=$1&site=$2

    et je voudrais obtenir simplement sa > nom.html

    seulement je ne sais pas comment ignorer la seconde variable j'ai pourtant bien chercher sur google

    voici ce que j'ai bricollé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    # unique :
    RewriteRule ^([a-z]*)\.html$ index.php?nom=$1&site=$2 [L]
    seulement sa marche pas, je me demande si c'est possible à moins que mon regex me permet pas de prendre en compte les (-) présent dans mes url

    Merci d'avance pour votre aide

  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
    Bonjour,

    Est-ce que tu peux donner un exemple d'URL que tu veux traiter le résultat attendu. A te lire, j'ai bien envie de dire de retirer le $2 de ta réécriture, mais je ne sais pas pourquoi, j'ai l'impression que ce n'est pas la réponse que tu attends

    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
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 240
    Points : 81
    Points
    81
    Par défaut
    bien par exemple l'url d'un profil est :

    index.php?nom=stephanie-milke&site=1828446c4ef2a6c31b

    le numéro d'id contenu dans site ne peut être enlevé car il permet a ma page de retrouver l'id du bon profil par sql, il est impensable pour des raisons techniques de faire la même chose avec le nom du profil.

    J'aimerais donc que la réécriture la transforme en :

    stephanie-milke.html

    elle ne prendrait donc en compte que le premier argument contenu dans $1 et elle ignorerait le deuxième contenu dans $2 qui servira toujours pour retrouver l'id au final mais sans que sa se voit dans l'url

  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
    Tu ne peux pas faire apparaître magiquement un truc qui n'est pas renvoyé par le navigateur d'un façon quelconque Comment veux-tu qu'Apache sache que l'ID de stephanie-milke c'est 1828446c4ef2a6c31b si le navigateur ne le fait pas apparaître dans l'URL ou un en-tête HTTP ? T'as que 3 solutions :
    • soit tu modifies ton code ou ton modèle de données pour qu'une requête sur stephanie-milke ramène cet ID,
    • soit tu conserves l'ID dans les URL,
    • soit tu passes cet ID dans un cookie que tu récupères dans ton code.

    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
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 240
    Points : 81
    Points
    81
    Par défaut
    ok je penssais que l'url rewriting préservé l'url d'origine pour le serveur.

    Sans vouloir abuser es que je peus utiliser ^([a-z]*)$ en sachant que mon url risque de contenir des signes particulier comme - ?

  6. #6
    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
    Citation Envoyé par Overstone Voir le message
    ok je penssais que l'url rewriting préservé l'url d'origine pour le serveur.
    J'ai vraiment du mal ce soir : tu veux dire quoi ? Comme ça, oui, l'URL rewriting préserve l'URL d'origine pour le serveur, mais je ne suis pas sûr qu'on parle de la même chose. Pour être qu'on se comprenne, donne nous une URL complète qui apparaît dans les pages HTML affichées dans le navigateur, c'est-à-dire les URL vues par les utilisateurs et qui seront envoyées au serveur. De ce que j'ai compris, dans tes pages, tu as http://www.tonsite.com/.../stephanie-milke.html. Est-ce bien cela ?

    Citation Envoyé par Overstone Voir le message
    Sans vouloir abuser es que je peus utiliser ^([a-z]*)$ en sachant que mon url risque de contenir des signes particulier comme - ?
    Comme ça, non, il faut rajouter un - dans les crochets : ^([-a-z]*)$. Le - qui figure déjà entre a et z, c'est pour dire "toutes les lettres entre a et z". Ce n'est pas le caractère - à proprement parler.

    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

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 240
    Points : 81
    Points
    81
    Par défaut
    http://www.tonsite.com/stephanie-milke.html
    c'est se que je souhaiterais avoir

    pour le moment l'url pour rentrer sur un profil est

    http://www.tonsite.com/index.php?nom...446c4ef2a6c31b

    je pourrais facilement faire

    http://www.tonsite.com/stephanie-mil...ef2a6c31b.html

    mais le problème c'est que l'adresse devient longue et difficilement mémorisable

    donc je pensais qu'il était possible de simplifier l'url rewriting en ne prenant pas compte que stephanie-milke à condition que le serveur prenne de tout manière en compte

    l'adresse complète :
    http://www.tonsite.com/index.php?nom...446c4ef2a6c31b

    mais si c'est pas possible il faudra que je me résous à avoir une url très difficilement mémorisable

    Merci de ton aide

  8. #8
    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
    Y a eu un cas récent sur qq d'identique. La solution a consisté à changer les requêtes SQL. Tout ça pour dire qu'il faut peut-être regardé du côté fonctionnel ou du modèle de données : quel est le rapport entre stephanie milke et 1828446c4ef2a6c31b ? Ces données figurent-elles dans la base de données ? Si oui, quelle est la relation entre elles ? Si 1828446c4ef2a6c31b est l'identifiant du site en cours de consultation, tu peux peut-être récupérer cette info en session ou ailleurs ?

    Il faut regarder toutes les options avant de baisser les bras et ne pas s'arrêter à la seule partie visible, à savoir les URL

    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

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 240
    Points : 81
    Points
    81
    Par défaut
    je pourrais retrouver l'id en le recherchant par rapport au nom avec la fonction like de sql par exemple.

    le pb est qu'il est possible qu'il y est plusieurs titres identiques alors qu'il est impossible d'avoir plusieurs id identiques.

    Je vais comme même peut être pencher pour cette solution.

    Merci je te dis se qu'il en est demain

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

Discussions similaires

  1. [URL rewriting] Une variable pour la langue
    Par Invité dans le forum Apache
    Réponses: 5
    Dernier message: 14/06/2013, 22h03
  2. [XL-2003] Prendre une variable (pour un lien)
    Par xexel dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/05/2013, 12h17
  3. [URL rewriting] N'avoir qu'une variable à afficher
    Par te-san dans le forum Apache
    Réponses: 6
    Dernier message: 11/12/2009, 13h32
  4. [C#] Passage d'une variable pour un controluser
    Par julio84 dans le forum ASP.NET
    Réponses: 10
    Dernier message: 07/04/2005, 13h50
  5. [XSL] utiliser une variable pour nom d'élément
    Par luta dans le forum XSL/XSLT/XPATH
    Réponses: 13
    Dernier message: 07/09/2004, 13h58

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