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] condition sur le premier caractère.


Sujet :

Apache

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 147
    Points : 109
    Points
    109
    Par défaut [URL Rewriting] condition sur le premier caractère.
    Bonjour,

    voici la composition de mon site:

    /lieu/
    /evenement/
    .htaccess
    index.php
    etc...

    Dans mon fichier index, j'ai pas exemple des liens du type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <a href="/lieu/index.php" /> //par exemple
    <a href="/evenement/index.php" /> //par exemple
    ce que je voudrai c'est avoir des liens de ce type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <a href="l_index.html" /> //par exemple
    <a href="e_index.html" /> //par exemple
    Et donc dans mon htaccess il faut que que je capture la première lettre du nom de fichier et que j'applique une rewriteRule pour rediriger sur le dossier en fonction de la lettre.
    Est-ce possible ?

    merci

  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

    Faut tout simplement utiliser un RewriteCond avant le RewriteRule, c'est fait exactement pour ce que tu veux faire. Exemple (à tester) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RewriteEngine On
    RewriteCond %{REQUEST_URI} ^/l_index.html
    RewriteRule .* /lieu/index.php [L]
    Pour le RewriteCond, tu peux juste mettre RewriteCond %{REQUEST_URI} ^/l_ par exemple, mais du coup la règle s'appliquera à tous les fichiers commençant par l_ à la racine du site, ce qui n'est pas nécessairement ce que tu veux.

    Le RewriteRule tel que je l'ai écrit ne fait pas de redirection client. Du coup, l'URL affichée dans le navigateur reste http://.../l_index.html. Si tu veux rediriger vers /lieu/index.php et voir cette adresse affichée dans la barre du navigateur, faut mettre [R,L] à la place du simple [L].

    Perso, j'éviterais de mettre index.php si c'est possible car ça offre plus de souplesse le jour où tu voudras changer l'extension de la page d'index.

  3. #3
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 147
    Points : 109
    Points
    109
    Par défaut
    merci.

    J'ai oublié de préciser, mais justement je veux que la condition s'applique pour tous les fichiers.

    donc j'ai essayé ton rewriteCond mais ça me met "the requested file wasnt find"

    RewriteCond %{REQUEST_URI} ^/l_
    RewriteRule ^(.*)_(.*).html$ /lieu/fiche.php [L]

    Avant ça, j'avais également essayé avec REQUEST_NAME mais j'obtiens le même erreur.

    De même, j'ai essayé avec [R,L] mais

    [edit] j'ai fais des test avec ^/l_(.*)$ mais non.

  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 Henry9 Voir le message
    donc j'ai essayé ton rewriteCond mais ça me met "the requested file wasnt find"
    J'ai bien dit que j'avais pas testé, faut pas s'étonner...

    Sinon, avec la simplification que je suggèrais, ça marche bien chez moi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RewriteEngine On
    RewriteCond %{REQUEST_URI} ^/l_
    RewriteRule .* /authentification/test.php [R,L]
    Je sais pas pourquoi tu complique le RewriteRule avec ton (.*)_... car la condition RewriteCond fait tout le boulot de filtre.

  5. #5
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 147
    Points : 109
    Points
    109
    Par défaut
    Citation Envoyé par _Mac_ Voir le message
    J'ai bien dit que j'avais pas testé, faut pas s'étonner...
    désolé je voulais pas être "aggressif".

    Merci pour ton aide, ton dernier code marche sans souci. En faite j'avais oublier de mettre un répertoire juste avant le ^/l_ car il y a deux sites stockés sur mon serveur.

  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
    T'inquiète, c'est plutôt moi qui étais agressif, des fois je suis un peu sec, mais c'est jamais méchant. Cool si ça marche. Bon week'

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

Discussions similaires

  1. [AC-2007] Condition en Si sur les premiers caractères d'un champ
    Par btks59 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 02/03/2011, 12h03
  2. [URL Rewriting] Infos sur l'URL Rewriting
    Par Thomad dans le forum Apache
    Réponses: 2
    Dernier message: 16/09/2007, 00h13
  3. Réponses: 2
    Dernier message: 07/09/2007, 13h26
  4. condition sur chaine de caractère
    Par trax44 dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 24/01/2007, 15h12
  5. Réponses: 3
    Dernier message: 06/10/2006, 14h55

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