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

Règles du forum
Attention ce forum est destiné avant tout à ceux qui découvrent le référencement. Les membres qui auront l'amabilité de répondre à leurs questions sont priés de rester courtois, polis, indulgents, patients et pédagogues... Merci d'avance !

Par ailleurs, inutile d'utiliser ce forum uniquement pour obtenir des liens vers vos sites, les liens sont désactivés pour le référencement (nofollow).

Consultez la formation au REFERENCEMENT naturel Google de WebRankInfo / Ranking Metrics

raknal
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 42
Inscription: 20 Sep 2010

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

Message le Lun Oct 18, 2010 13:12

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: Tout sélectionner
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.

jcaron
WRInaute accro
WRInaute accro
 
Messages: 2687
Inscription: 13 Fév 2004

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

Message le Lun Oct 18, 2010 19:00

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.

raknal
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 42
Inscription: 20 Sep 2010

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

Message le Mar Oct 19, 2010 6:49

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

jcaron
WRInaute accro
WRInaute accro
 
Messages: 2687
Inscription: 13 Fév 2004

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

Message le Mar Oct 19, 2010 22:05

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.

raknal
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 42
Inscription: 20 Sep 2010

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

Message le Mer Oct 20, 2010 15:38

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.


Leonick
WRInaute accro
WRInaute accro
 
Messages: 19598
Inscription: 8 Aoû 2004

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

Message le Mer Oct 20, 2010 22:58

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

raknal
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 42
Inscription: 20 Sep 2010

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

Message le Jeu Oct 21, 2010 11:47

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


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Formation recommandée sur ce thème :

Formation REFERENCEMENT naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité