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] Rendre le / final optionnel


Sujet :

Apache

  1. #1
    Membre habitué Avatar de Alexandrebox
    Profil pro
    Inscrit en
    Août 2006
    Messages
    635
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 635
    Points : 153
    Points
    153
    Par défaut [URL rewriting] Rendre le / final optionnel
    Bonjour,
    J'ai écrit des directives url rewriting qui marche.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^([a-z]*)/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)/([0-9]+)$ index.php?langpage=$1&titrepage=$2&appage=$3&idpage=$4 [L]
    Le seul problème est que, si l'internaute tape à la fin du lien un slash /
    Le serveur ne trouve plus. Je suis obligé de répéter deux fois la même directive une fois sans comme ci-dessus et une fois avec \/$
    Ayant plusieurs directives, ça riste de faire désordre si je dois tout écrire 2 fois. Est-ce possible de faire une directive pour dire que si le lien finit par / ou non, accepter la page?

    Merci de 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
    Oui, avec \/?

  3. #3
    Membre habitué Avatar de Alexandrebox
    Profil pro
    Inscrit en
    Août 2006
    Messages
    635
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 635
    Points : 153
    Points
    153
    Par défaut
    Ce n'est pas un V mais un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^([a-z]*)/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)/([0-9]+)\/$ index.php?langpage=$1&titrepage=$2&appage=$3&idpage=$4 [L]
    Je dois faire ceci pour chaque écriture. Je me retrouve avec deux directives au lieu d'une.

    Il y a t- il un moyen de dire que : quelque soit le lien, si il finit ou non par / c'est bon ?

    Merci

  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
    Citation Envoyé par Alexandrebox Voir le message
    Ce n'est pas un V
    Effectivement, c'est n'est pas un V que j'ai mis mais "backslash-slash-point d'interrogation". Tu peux changer la police d'affichage ou sélectionner le texte pour vérifier, si tu veux. Mais après réflexion, le \ (backslash) est inutile : fais plutôt simplement /? sans \ (backslash) devant.

  5. #5
    Membre habitué Avatar de Alexandrebox
    Profil pro
    Inscrit en
    Août 2006
    Messages
    635
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 635
    Points : 153
    Points
    153
    Par défaut
    Oui merci mais ça ne résoud pas mon problème
    Au lieu d'une directive, je dois chaque fois en écrire deux. comme dans cet exemple si je veux qu'il accepte des liens qui finissent sans slash et ceux qui finissent avec.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RewriteRule ^([a-z]*)/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)/([0-9]+)$ index.php?langpage=$1&titrepage=$2&appage=$3&idpage=$4 [L]
     
    RewriteRule ^([a-z]*)/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)/([0-9]+)\/$ index.php?langpage=$1&titrepage=$2&appage=$3&idpage=$4 [L]
    Y a t-il un moyen de le faire une fois pour toute? Genre :accepte lien se terminant avec slash ou sans slash pour toutes les directives.

    Merci

  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
    Je vais essayer de ne pas m'énerver... Une seule règle avec /? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^([a-z]*)/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)/([0-9]+)/?$ index.php?langpage=$1&titrepage=$2&appage=$3&idpage=$4 [L]

  7. #7
    Membre habitué Avatar de Alexandrebox
    Profil pro
    Inscrit en
    Août 2006
    Messages
    635
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 635
    Points : 153
    Points
    153
    Par défaut
    Oui j'ai compris enfin. C'est vrai que des exemples sont toujours plus parlants

    Merci beaucoup. Je l'ai testé et ça marche nickel. Merci mille fois

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

Discussions similaires

  1. URL rewriting avec paramètres optionnels
    Par JayZon12 dans le forum Apache
    Réponses: 2
    Dernier message: 18/11/2014, 18h00
  2. Réponses: 5
    Dernier message: 13/08/2013, 16h12
  3. [ZF 1.10] Zend, Rendre un variable optionnelle dans une url
    Par tomtom94500 dans le forum Zend Framework
    Réponses: 1
    Dernier message: 09/06/2010, 21h12
  4. [URL Rewriting] Sans slash final dans l'URL
    Par yanice dans le forum Apache
    Réponses: 2
    Dernier message: 26/10/2007, 20h23
  5. [Débutant]infos ds session sans cookie ? url rewriting ?
    Par Satanas_et_diabolo dans le forum ASP
    Réponses: 8
    Dernier message: 10/10/2006, 18h13

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