Url-Rewriting comment arrêter la vérification des autres exp dès qu'une est satisfaite

Discussion dans 'Débuter en référencement' créé par raknal, 18 Octobre 2010.

  1. raknal
    raknal WRInaute discret
    Inscrit:
    20 Septembre 2010
    Messages:
    60
    J'aime reçus:
    0
    Bonjour,

    J'effectue l'url rewriting de mon site, le soucis c'est qu'il faut toujours commenter la dernière expression pour que le htaccess soit OK
    Code:
    RewriteRule ^madagascar-(.*)-(.*)-(.*)-(.*)$ index.php/contenu/$1_$2_$3_$4 [L]
    RewriteRule ^madagascar-(.*)-(.*)-(.*)$ index.php/contenu/$1_$2_$3 [L]
    RewriteRule ^madagascar-(.*)-(.*)$ index.php/contenu/$1_$2 [L]
    RewriteRule ^madagascar-(.*)$ index.php/contenu/$1 [L]
    RewriteRule (.*)(?!index\.php/)(.+)$ index.php/$0 [L]
    Il faut donc faire #RewriteRule (.*)(?!index\.php/)(.+)$ index.php/$0 [L]
    Je me demande, est-ce que [L] n'arrête pas la lecture des lignes suivantes dès que son expression est exacte?
    Le soucis aussi c'est que la dernière ne marche pas que quand les expressions d'avant commentés. Cette dernière consiste à mettre index.php après le nom de domaine pour les url qui n'en contiennent pas.
     
  2. jcaron
    jcaron WRInaute accro
    Inscrit:
    13 Février 2004
    Messages:
    2 579
    J'aime reçus:
    0
    Oui, [L] devrait le faire s'arrêter là. Mais je ne suis pas convaincu que ta dernière ligne fasse ce que tu veux, je pense que tu devrais relire la doc pour (?!), parce qu'un negative look-ahead c'est un truc plus subtil qu'il n'y paraît, et en gros, ta regex correspond à tout ce qui fait au moins un caractère, y compris ce qui contient index.php.

    Au passage, quel est l'intérêt de rajouter le index.php?

    Jacques.
     
  3. raknal
    raknal WRInaute discret
    Inscrit:
    20 Septembre 2010
    Messages:
    60
    J'aime reçus:
    0
    Oui c'est ça ce que je cherchais à faire dans la dernière ligne: ajouter index.php à l'url qui ne l'a pas!
    Le vrai URL compréhensible par mon framework php (codeigniter) est du genre domainte_site_web/index.php/article/environment

    Ce que je ne comprends pas du tout c'est que le [L] ne semble pas arrêter le rewriting car par exemple si RewriteRule ^madagascar-(.*)-(.*)-(.*)-(.*)$ index.php/contenu/$1_$2_$3_$4 [L] s'effectue, ça passe toujours vers la dernière ligne, ce qui m'a obligé à commenter cette dernière alors que ça m'est utile
     
  4. jcaron
    jcaron WRInaute accro
    Inscrit:
    13 Février 2004
    Messages:
    2 579
    J'aime reçus:
    0
    Comme déjà indiqué, je doute fortement que ta dernière ligne fasse ce que tu veux, je pense que ça va ajouter index.php même à des lignes qui ont déjà index.php.

    Et qu'est-ce-qui te fait dire que si ton URL est "matchée" par une règle précédente la dernière règle s'applique quand même? Tu as un exemple d'URL et de ce qui se passe?

    Jacques.
     
  5. raknal
    raknal WRInaute discret
    Inscrit:
    20 Septembre 2010
    Messages:
    60
    J'aime reçus:
    0
    Jacques > Voici un exemple

    L'URL /madagascar-produits-aux-paysans

    Ca se match avec le RewriteRule n°2 non? Donc ça doit s'arrêter là, n'est-ce pas mais il s'avère que non et c'est vrai d'après le dire d'un expert

    Envoyé par _Mac_
    Le seul truc c'est que le [L] n'arrête pas le traitement de l'URL pour de bon : il va arrêter le cycle de réécriture en cours mais un suivant va recommencer. La réécriture d'URL ne s'arrêtera que lorsque l'URL d'entrée ne sera plus modifiée par les règles.
     
  6. Leonick
    Leonick WRInaute accro
    Inscrit:
    8 Août 2004
    Messages:
    19 270
    J'aime reçus:
    0
    la meilleure solution pour vérifier tes règles consiste à mettre un [R=301,L] à chacune de tes règles et de vérifier si, déjà comme ça, la réécriture s'effectue correctement. Un fois OK, tu peux supprimer le R=301 de tes règles
     
  7. raknal
    raknal WRInaute discret
    Inscrit:
    20 Septembre 2010
    Messages:
    60
    J'aime reçus:
    0
    Pas même besoin de ce [R=301,L] pour savoir que /madagascar-produits-aux-paysans répond à l'expression RewriteRule ^madagascar-(.*)-(.*)-(.*)-(.*)$ index.php/contenu/$1_$2_$3_$4 [L]

    Mais bon comme la citation que j'ai envoyée [L] n'arrête pas le traitement de l'URL pour de bon

    J'ai voulu remplacer RewriteRule (.*)(?!index\.php/)(.+)$ index.php/$0 [L] par
    RewriteCond %{REQUEST_URL} !index\.php
    RewriteRule (.*) index.php/$1 [L]
    Mais ça marche pas
     
Chargement...
Similar Threads - Rewriting arrêter vérification Forum Date
Paramètres urls & urlrewriting => alphabétiques ou codés ? Problèmes de référencement spécifiques à vos sites 30 Mars 2022
Problème url rewriting et redirection URL Rewriting et .htaccess 4 Février 2022
URL rewriting d'images URL Rewriting et .htaccess 22 Janvier 2022
petit soucis url rewriting URL Rewriting et .htaccess 17 Janvier 2022
url rewriting ne fonctionne pas chez moi URL Rewriting et .htaccess 4 Août 2021
URL rewriting et REGEX bonnes pratiques Développement d'un site Web ou d'une appli mobile 9 Septembre 2020
supprimer /index.html sans url rewriting, possible ? URL Rewriting et .htaccess 13 Novembre 2019
Je bloque sur le rewriting des URL contenant un ? URL Rewriting et .htaccess 3 Septembre 2019
récupération du get après rewriting URL Rewriting et .htaccess 21 Juin 2019
Ralentissement url rewriting URL Rewriting et .htaccess 1 Mai 2019
URL Rewriting Débuter en référencement 17 Avril 2019
Conflit de redirection 301 et Urlrewriting Netlinking, backlinks, liens et redirections 20 Février 2019
URL REWRITING et redirection 301 URL Rewriting et .htaccess 24 Janvier 2019
URL Rewriting : difficultés avec RewriteCond ? URL Rewriting et .htaccess 5 Décembre 2018
Résolu URL Rewriting : Garder l'adresse non transformée dans le navigateur URL Rewriting et .htaccess 2 Décembre 2018
Mes débuts dans l'URL Rewriting URL Rewriting et .htaccess 14 Novembre 2018
Url rewriting Techniques avancées de référencement 22 Octobre 2018
URL rewriting et redirections après restauration post-piratage Débuter en référencement 29 Septembre 2018
url rewriting wordpress sans repertoire URL Rewriting et .htaccess 12 Août 2018
rewriting specifique pour Adwords AdWords 17 Juillet 2018