Formation par Olivier Duffez

Formation au référencement par Olivier Duffez, créateur de WebRankInfo !
Une formule efficace alliant théorie et pratique, avec une haute disponibilité des intervenants
Cette formule a déjà convaincu plusieurs centaines d'entreprises, pourquoi pas vous ?
Réservez vite votre place en ligne (convention possible pour imputer sur le budget formation)

Formation référencement Marseille

comment ignorer le / final?

Poster un nouveau sujet Imprimer cette discussion    Forum -> URL Rewriting et .htaccess   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
YvesB
WRInaute passionné
WRInaute passionné

Inscrit le: 11 Jan 2004
Messages: 512
Localisation: Bournemouth, England

URL permanente de ce messagePosté le : Sam Fév 18, 2006 15:23    Sujet du message: comment ignorer le / final?

Bonjour,

je souhaites faire passer mes parametres dans des dossiers du style :

www.mondomaine.com/para1/para2/para3/

pour :

www.mondomaine.com/?p1=para1&p2=para2&p3=para4

Mais 2 problemes : Les parametres ne doivent pas etre obligatoires, et le dernier "/" doit pouvoir etre oublié ....

Mon htaccess est comme cela :

RewriteEngine on
RewriteRule ^(.*)?/?(.*)?/?(.*)?/?$ index.php?p1=$0&p2=$1&p3=$2

Merci de votre aide
 
YvesB Visiter le site web du posteur
ChezThierry
WRInaute impliqué
WRInaute impliqué

Inscrit le: 21 Oct 2005
Messages: 273

URL permanente de ce messagePosté le : Sam Fév 18, 2006 15:41    Sujet du message: comment ignorer le / final?

Si, comme je le comprends, tes paramètres sont optionnels mais que, s'il n'y en a qu'un, c'est obligatoirement p1, pour 2, obligatoirement p1 et p2, etc, alors tu peux faire comme ça :
Code:

RewriteEngine on
RewriteRule ^(.+)/(.+)/(.+)/?$ index.php?p1=$1&p2=$2&p3=$3 [L]
RewriteRule ^(.+)/(.+)/?$ index.php?p1=$1&p2=$2 [L]
RewriteRule ^(.+)/?$ index.php?p1=$1 [L]
 
ChezThierry Visiter le site web du posteur
correiaj
WRInaute accro
WRInaute accro

Inscrit le: 25 Avr 2005
Messages: 1106
Localisation: Paraná y Bombonera

URL permanente de ce messagePosté le : Sam Fév 18, 2006 15:48    Sujet du message: comment ignorer le / final?

Ou bien:
Code:

RewriteEngine on
RewriteRule ^([^/]*)/?([^/]*)/?([^/]*)/$ index.php?p1=$1&p2=$2&p3=$3
 
correiaj Visiter le site web du posteur
YvesB
WRInaute passionné
WRInaute passionné

Inscrit le: 11 Jan 2004
Messages: 512
Localisation: Bournemouth, England

URL permanente de ce messagePosté le : Sam Fév 18, 2006 16:12    Sujet du message: comment ignorer le / final?

Merci de vos 2 réponses. Malheuresement, pour vous deux reponses le / de la fin est obligatoire pour que cela marche.

Puis avant de traité quoi que ce soit ajouté un / si il n'y est pas?
 
YvesB Visiter le site web du posteur
ChezThierry
WRInaute impliqué
WRInaute impliqué

Inscrit le: 21 Oct 2005
Messages: 273

URL permanente de ce messagePosté le : Sam Fév 18, 2006 16:58    Sujet du message: comment ignorer le / final?

Je viens de faire quelques essais chez moi (apache2 sous ubuntu breezy badger 5.10) :
Avec ces règles exactes :
Code:

RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ index.php?p1=$1&p2=$2&p3=$3 [L]
RewriteRule ^([^/]+)/([^/]+)/?$ index.php?p1=$1&p2=$2 [L]
RewriteRule ^([^/]+)/?$ index.php?p1=$1 [L]


Chez moi j'ai remplacé [L] par [L,R] pour voir le résultat directement dans la barre d'adresses

ça fonctionne pour les cas suivants :
-http://www.example.com/page1
-http://www.example.com/page1/
qui donnent -http://www.example.com/index.php?p1=page1


-http://www.example.com/page1/page2
-http://www.example.com/page1/page2/
qui donnent -http://www.example.com/index.php?p1=page1&p2=page2

-http://www.example.com/page1/page2/page3
-http://www.example.com/page1/page2/page3/
qui donnent -http://www.example.com/index.php?p1=page1&p2=page2&p3=page3


(Jai modifié par rapport à mon premier post parce qu'on avait p1=page1/ dans certains cas (le / final restait)

Es-tu sûr que ça ne fonctionne pas chez toi, ça ?
 
ChezThierry Visiter le site web du posteur
YvesB
WRInaute passionné
WRInaute passionné

Inscrit le: 11 Jan 2004
Messages: 512
Localisation: Bournemouth, England

URL permanente de ce messagePosté le : Sam Fév 18, 2006 18:05    Sujet du message: comment ignorer le / final?

Quand je copie/colle ton htaccess, seul p1 recupere une valeur et c'est la valeur : 'index.php' !

si j'enleve le '?' a la fin de chaque regle,

RewriteRule ^([^/]+)/$ index.php?p1=$1 [L]

ca marche, mais probleme si je ne met pas le / a la fin de l'url,


cela ne marche pas...
 
YvesB Visiter le site web du posteur
ChezThierry
WRInaute impliqué
WRInaute impliqué

Inscrit le: 21 Oct 2005
Messages: 273

URL permanente de ce messagePosté le : Sam Fév 18, 2006 19:59    Sujet du message: comment ignorer le / final?

C'est pas normal que tu retrouves index.php dans p1, ça veut dire une de ces deux choses :
- les règles sont appliquées 2 fois de suite, une fois pour créer l'URL avec index.php, et l'autre où p1 prends la valeur index.php, ce qui est impossible à cause du [L]
- tu appelles toi-même une url du style index.php, et la règle prends ça pour un nom de répertoire et reformule index.php?p1=index.php

Si tu me confirmes que tu n'as rien d'autre dans ton .htaccess que ces règles, on va essayer comme ça :
Code:

RewriteRule ^index.php$ - [L]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ index.php?p1=$1&p2=$2&p3=$3 [L]
RewriteRule ^([^/]+)/([^/]+)/?$ index.php?p1=$1&p2=$2 [L]
RewriteRule ^([^/]+)/?$ index.php?p1=$1 [L]
 
ChezThierry Visiter le site web du posteur
YvesB
WRInaute passionné
WRInaute passionné

Inscrit le: 11 Jan 2004
Messages: 512
Localisation: Bournemouth, England

URL permanente de ce messagePosté le : Sam Fév 18, 2006 20:41    Sujet du message: comment ignorer le / final?

Ce coup si ... ca marche complementement ! Merci mille fois de ta percévérance. Et parce qu'un PR 5 vos mieux que 100 mercis, je ferait un lien sur ton site en profil quand mon site sera reoprérationnel.


Merci bonne soirée Smile
(Merci aussi correiaj)
 
YvesB Visiter le site web du posteur
ChezThierry
WRInaute impliqué
WRInaute impliqué

Inscrit le: 21 Oct 2005
Messages: 273

URL permanente de ce messagePosté le : Dim Fév 19, 2006 15:30    Sujet du message: comment ignorer le / final?

J'essaye d'aider dans cette rubrique autant que faire se peut, puisque je suis fan de Perl et que j'ai l'habitude d'utiliser les regexp, ça me fait donc plaisir de me triturer un peu la cervelle pour répondre.

C'est néanmoins la première fois qu'on me propose de me remercier de cette façon, merci beaucoup à toi, surtout que mon pauvre petit blog tarde à trouver son public, une petite montée de PR pourrait peut-être l'aider Smile
 
ChezThierry Visiter le site web du posteur
YvesB
WRInaute passionné
WRInaute passionné

Inscrit le: 11 Jan 2004
Messages: 512
Localisation: Bournemouth, England

URL permanente de ce messagePosté le : Dim Fév 19, 2006 19:37    Sujet du message: comment ignorer le / final?

Aucun probleme. Le lien et deja en place sur la page daccueil temporaire : www.afterdreams.com
 
YvesB Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> URL Rewriting et .htaccess Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1 - 
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort