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

Rewriter juste UN lien, faire savoir la fin de la chaine $

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
 
Modibo
WRInaute discret
WRInaute discret

Inscrit le: 28 Mar 2005
Messages: 81

URL permanente de ce messagePosté le : Sam Jan 12, 2008 15:47    Sujet du message: Rewriter juste UN lien, faire savoir la fin de la chaine $

Bonjour
Je possède un forum sur lequel j'essaye de Rewriter uniquement 1 Lien sous forme "showforum=1" en "Titre-f1.html"

Voici le code qui concerne la règle de réécriture
Code:
$this->ipsclass->skin['_wrapper'] = preg_replace("'{$boardurl}\?showforum=1'","{$this->ipsclass->vars['board_url']}/Titre-f1.html",$this->ipsclass->skin['_wrapper']);

Ca se passe très bien... Seulement malheureusement cette règle réécrira aussi les lien de type " "showforum=10" "showforum=11" "showforum=12"...

Comment indiquer la fin de la chaine pour que seul "showforum=1" soit réécrit et pas les autres
Merci Wink
 
Modibo Visiter le site web du posteur
KOogar
WRInaute accro
WRInaute accro

Inscrit le: 16 Nov 2004
Messages: 2987
Localisation: Bangalore +4h30

URL permanente de ce messagePosté le : Sam Jan 12, 2008 17:20    Sujet du message: Rewriter juste UN lien, faire savoir la fin de la chaine $

en testant le caractere suivant (ici il ne doit pas etre un chiffre), c'est un peu retord mais ca marche

Code:
$pattern = "#\?showforum=(1)?[^0-9]#i";
 
KOogar Visiter le site web du posteur
Hearty
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 23 Fév 2004
Messages: 138

URL permanente de ce messagePosté le : Sam Jan 12, 2008 17:25    Sujet du message: Rewriter juste UN lien, faire savoir la fin de la chaine $

Ben avec le $ en caractère de fin de chaine çà marche pas ?
 
Hearty Visiter le site web du posteur
KOogar
WRInaute accro
WRInaute accro

Inscrit le: 16 Nov 2004
Messages: 2987
Localisation: Bangalore +4h30

URL permanente de ce messagePosté le : Sam Jan 12, 2008 17:43    Sujet du message: Rewriter juste UN lien, faire savoir la fin de la chaine $

c'est la syntaxe PCRE qu'utilise Apache dans son moteur de réécriture mais les delimitateurs de fin sont differents ( # ou ' pour les PCRE )

... son probleme n'est pas la puisque les délimitateurs sont placés, il est dans la capture.
 
KOogar Visiter le site web du posteur
Modibo
WRInaute discret
WRInaute discret

Inscrit le: 28 Mar 2005
Messages: 81

URL permanente de ce messagePosté le : Sam Jan 12, 2008 18:25    Sujet du message: Rewriter juste UN lien, faire savoir la fin de la chaine $

KOogar a écrit:
en testant le caractere suivant (ici il ne doit pas etre un chiffre), c'est un peu retord mais ca marche

Code:
$pattern = "#\?showforum=(1)?[^0-9]#i";
J'ai teste et malheureusement les liens ne sont pas réécrits, ça n'y fait rien Confused
 
Modibo Visiter le site web du posteur
KOogar
WRInaute accro
WRInaute accro

Inscrit le: 16 Nov 2004
Messages: 2987
Localisation: Bangalore +4h30

URL permanente de ce messagePosté le : Sam Jan 12, 2008 19:38    Sujet du message: Rewriter juste UN lien, faire savoir la fin de la chaine $

Code:
<?php

$subjects = "*******?showforum=1*******";
$subjects = preg_replace("#\?showforum=(1)?[^0-9]#i","/Titre-f1.html",$subjects);
print_r("$subjects");
# AFFICHE
#  *******/Titre-f1.html******

$subjects = "*******?showforum=10*******";
$subjects = preg_replace("#\?showforum=(1)?[^0-9]#i","/Titre-f1.html",$subjects);
print_r("$subjects");
# AFFICHE
#  *******?showforum=10*******

?>


Code:
$this->ipsclass->skin['_wrapper'] = preg_replace("'{$boardurl}\?showforum=(1)?[^0-9]'","{$this->ipsclass->vars['board_url']}/Titre-f1.html",$this->ipsclass->skin['_wrapper']);

chez moi ca marche, mais ce n'est pas ca ce que tu veux faire ?
 
KOogar Visiter le site web du posteur
Modibo
WRInaute discret
WRInaute discret

Inscrit le: 28 Mar 2005
Messages: 81

URL permanente de ce messagePosté le : Sam Jan 12, 2008 20:02    Sujet du message: Rewriter juste UN lien, faire savoir la fin de la chaine $

En effet sans le #i les liens sont bien réécrits Merci à toi Wink sauf que le guillemet derrière n'est pas pris en compte à cause du "?" et on se retrouve avec un lien "http://***Titre.html title="
l'antislash ne résout pas le problème comme avec le "?" de juste avant dans le lien
 
Modibo Visiter le site web du posteur
KOogar
WRInaute accro
WRInaute accro

Inscrit le: 16 Nov 2004
Messages: 2987
Localisation: Bangalore +4h30

URL permanente de ce messagePosté le : Dim Jan 13, 2008 4:26    Sujet du message: Rewriter juste UN lien, faire savoir la fin de la chaine $

Code:
$this->ipsclass->skin['_wrapper'] = preg_replace("'{$boardurl}\?showforum=1[^0-9]'","{$this->ipsclass->vars['board_url']}/Titre-f1.html",$this->ipsclass->skin['_wrapper']);


j'avais mis le "?" au cas ou tu chercherais d'autre valeur que 1( tu n'avais pas donner avant le contenu de la chaine de travail -> "http://***Titre.html title=" ), ca etant enleve le, ca ne changera rien au masque sauf ca devrait prendre en compte le guillement maintenant et matcher avec le masque.
 
KOogar Visiter le site web du posteur
Modibo
WRInaute discret
WRInaute discret

Inscrit le: 28 Mar 2005
Messages: 81

URL permanente de ce messagePosté le : Jeu Jan 17, 2008 21:18    Sujet du message: Rewriter juste UN lien, faire savoir la fin de la chaine $

Re KOogar
Merci pour ton aide
Je vais voir comment je peux faire pour arranger ça Wink
A toute
 
Modibo Visiter le site web du posteur
Modibo
WRInaute discret
WRInaute discret

Inscrit le: 28 Mar 2005
Messages: 81

URL permanente de ce messagePosté le : Jeu Jan 17, 2008 22:31    Sujet du message: Rewriter juste UN lien, faire savoir la fin de la chaine $

Voilà je viens de terminer, j'ai réussi en ajouant un secon " derrière un antislash pour qu'il soit pris en compte sans faire bugger le code, ce qui fait à la fin: Titre-f1.html\""
J'espère que ça n'a aucune incidence négative.... sur le premier " qui n'était pas pris en compte juste avant.

Code:
$this->ipsclass->skin['_wrapper'] = preg_replace("'{$boardurl}\?showforum=1[^0-9]'","{$this->ipsclass->vars['board_url']}/Titre-f1.html\"",$this->ipsclass->skin['_wrapper']);


Encore Merci KOogar Wink
 
Modibo 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 + 1 Heure
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