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

Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics

Modibo
WRInaute discret
WRInaute discret
 
Messages: 93
Inscription: 28 Mar 2005

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

Message le Sam Jan 12, 2008 15:47

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: Tout sélectionner
$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 ;)


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3974
Inscription: 16 Nov 2004

Message le Sam Jan 12, 2008 17:20

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

Code: Tout sélectionner
$pattern = "#\?showforum=(1)?[^0-9]#i";


Hearty
WRInaute discret
WRInaute discret
 
Messages: 138
Inscription: 23 Fév 2004

Message le Sam Jan 12, 2008 17:25

Ben avec le $ en caractère de fin de chaine çà marche pas ?


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3974
Inscription: 16 Nov 2004

Message le Sam Jan 12, 2008 17:43

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.

Modibo
WRInaute discret
WRInaute discret
 
Messages: 93
Inscription: 28 Mar 2005

Message le Sam Jan 12, 2008 18:25

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: Tout sélectionner
$pattern = "#\?showforum=(1)?[^0-9]#i";
J'ai teste et malheureusement les liens ne sont pas réécrits, ça n'y fait rien :?


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3974
Inscription: 16 Nov 2004

Message le Sam Jan 12, 2008 19:38

Code: Tout sélectionner
<?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: Tout sélectionner
$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 ?

Modibo
WRInaute discret
WRInaute discret
 
Messages: 93
Inscription: 28 Mar 2005

Message le Sam Jan 12, 2008 20:02

En effet sans le #i les liens sont bien réécrits Merci à toi ;) 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


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3974
Inscription: 16 Nov 2004

Message le Dim Jan 13, 2008 4:26

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

Modibo
WRInaute discret
WRInaute discret
 
Messages: 93
Inscription: 28 Mar 2005

Message le Jeu Jan 17, 2008 21:18

Re KOogar
Merci pour ton aide
Je vais voir comment je peux faire pour arranger ça ;)
A toute

Modibo
WRInaute discret
WRInaute discret
 
Messages: 93
Inscription: 28 Mar 2005

Message le Jeu Jan 17, 2008 22:31

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: Tout sélectionner
$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 ;)


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 URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. 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 :

Consultez la description détaillée des produits ou services de Google suivants : Googlebot, YouTube, Google Space

  • Tester la validité d'un lien
    Cet outil vous permet de tester la validité d'un lien pour le référencement. Il vous indique la nature du lien (lien en dur, redirection bien gérée par les moteurs ou redirection mal gérée par les moteurs).
  • Calculer le ratio de liens profonds
    Cet outil vous permet de calculer le taux de liens profonds vers un site web. Un lien profond est un lien qui ne pointe pas vers la page d'accueil mais au contraire vers une page interne du site. Les sites dont l'essentiel du référencement vient de leurs inscriptions dans des annuaires ont un taux de liens profonds faible ; à l'inverse, les sites de référence ont souvent un taux de liens profonds plus important, signe que leur contenu a suscité de nombreux liens spontanés.
  • Transformer des textes non cliquables en liens
    Cet outil vous permet de trouver des pages citant votre site mais ne faisant pas (encore) de lien. Il suffira parfois d'un simple mail pour transformer cette simple citation en lien (backlink).


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités