Et avec un titre comment faire ??
6 messages
• Page 1 sur 1
Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics
- JohnAtthane
- Nouveau WRInaute

- Messages: 4
- Inscription: 19 Nov 2011
Et avec un titre comment faire ??
Bonjour à tous,
Après qu'Olivier Duffez m'ait répondu en me disant que c'était possible, mais comme en lisant le tuto ici http://www.webrankinfo.com/dossiers/techniques/tutoriel-url-rewriting je n'ai absolument rien compris je viens à vous
J'ai déjà lu pas mal de forums, tuto et je n'arrive pas à trouver une réponse.
Voici l'url d'une de mes news : http://www.bordeauxpaquebots.com/news.php?id=37 dont le titre est "Point sur les escales 2012"
Je souhaiterais donc voir dans l'url quelquechose du genre http://www.bordeauxpaquebots.com/37-Point-sur-les-escales-2012
Enfin le but est qu'il y ait un titre.
Quelqu'un pourrait il m'expliquer donc comment faire la manipulation ?
Merci à vous
Après qu'Olivier Duffez m'ait répondu en me disant que c'était possible, mais comme en lisant le tuto ici http://www.webrankinfo.com/dossiers/techniques/tutoriel-url-rewriting je n'ai absolument rien compris je viens à vous
J'ai déjà lu pas mal de forums, tuto et je n'arrive pas à trouver une réponse.
Voici l'url d'une de mes news : http://www.bordeauxpaquebots.com/news.php?id=37 dont le titre est "Point sur les escales 2012"
Je souhaiterais donc voir dans l'url quelquechose du genre http://www.bordeauxpaquebots.com/37-Point-sur-les-escales-2012
Enfin le but est qu'il y ait un titre.
Quelqu'un pourrait il m'expliquer donc comment faire la manipulation ?
Merci à vous
- JohnAtthane
- Nouveau WRInaute

- Messages: 4
- Inscription: 19 Nov 2011
Re: Et avec un titre comment faire ??
Désolé du double post, mais j'ai trouvé quelquechose qui ne marche qu'à 50%
J'ai relu tous les commentaires du tutos, et appliqué un: voici mon htaccess
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^news-(.+)-([0-9]+).html$ /news.php?id=$2 [L]
Les problèmes sont:
-Que j'écrive cela http://www.bordeauxpaquebots.com/news-tralalalalala-37.html ou http://www.bordeauxpaquebots.com/news-nimportequoi-37.html , la news s'affiche
- Sur ma page d'index, si on clique sur le titre de la news, l'url affiché est toujours http://www.bordeauxpaquebots.com/news.php?id=37 et non avec le titre ;(
J'ai relu tous les commentaires du tutos, et appliqué un: voici mon htaccess
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^news-(.+)-([0-9]+).html$ /news.php?id=$2 [L]
Les problèmes sont:
-Que j'écrive cela http://www.bordeauxpaquebots.com/news-tralalalalala-37.html ou http://www.bordeauxpaquebots.com/news-nimportequoi-37.html , la news s'affiche
- Sur ma page d'index, si on clique sur le titre de la news, l'url affiché est toujours http://www.bordeauxpaquebots.com/news.php?id=37 et non avec le titre ;(
-

tryan - WRInaute passionné

- Messages: 2355
- Inscription: 20 Fév 2005
Re: Et avec un titre comment faire ??
Salut JohnAtthane,
L'url rewriting demande un peut plus de manipulations qu'un simple fichier .htaccess à remplir. Je ne suis pas très doué dans le domaine mais je vais quand même tenter de t'orienter.
Dans un premier temps, il faut transmettre en "GET" les bonnes variables. Pour le moment tu ne transmet que "id" » "news.php?id=37". Il faut transmettre également le titre de la page avec une variable "titre" par exemple » "news.php?id=37&titre=Point sur les escales 2012".
Ensuite, dans ta page de destination, tu récupères le tout :
On s’oriente maintenant vers le fichier .htaccess :
Cette règle indique qu'il faut ré écrire "news.php?id=37&titre=Point sur les escales 2012" en "37-Point sur les escales 2012.php".
Comme tu le constates, le titre n'est pas ré écrit correctement, il faut donc ajouter une fonction qui transforme le titre en supprimant les espaces, passer les majuscules en minuscules, etc...
Dans un fichier "fonctions.php appelé par une "include" ou directement dans le fichier de destination :
Actuellement tes liens sont sous la forme :
et doivent avoir un code à peut près similaire à :
Il faut donc modifier tout tes liens de la façon suivante :
Dans cet exemple, la variable "$titre" associé à la fonction "OptimiseUrl" » "OptimiseUrl($titre)" donne comme résultat » "point-sur-les escales-2012".
L'action cumulé du fichier .htaccess + fonction OptimiseUrl + modification des liens donne comme résultat une url du type :
Dans le même style : Url rewriting du site dynamique
En espérant t'avoir aidé..
L'url rewriting demande un peut plus de manipulations qu'un simple fichier .htaccess à remplir. Je ne suis pas très doué dans le domaine mais je vais quand même tenter de t'orienter.
Dans un premier temps, il faut transmettre en "GET" les bonnes variables. Pour le moment tu ne transmet que "id" » "news.php?id=37". Il faut transmettre également le titre de la page avec une variable "titre" par exemple » "news.php?id=37&titre=Point sur les escales 2012".
Ensuite, dans ta page de destination, tu récupères le tout :
- Code: Tout sélectionner
$id=$_GET["id"];//correspond à 37
$titre=$_GET["titre"];// correspond à "Point sur les escales 2012"
On s’oriente maintenant vers le fichier .htaccess :
- Code: Tout sélectionner
RewriteEngine on
RewriteBase /
RewriteRule ^([0-9]*)-(.*)\.php$ news.php?id=$1&titre=$2 [L]
Cette règle indique qu'il faut ré écrire "news.php?id=37&titre=Point sur les escales 2012" en "37-Point sur les escales 2012.php".
Comme tu le constates, le titre n'est pas ré écrit correctement, il faut donc ajouter une fonction qui transforme le titre en supprimant les espaces, passer les majuscules en minuscules, etc...
Dans un fichier "fonctions.php appelé par une "include" ou directement dans le fichier de destination :
- Code: Tout sélectionner
function OptimiseUrl($chaine)
{
$chaine=strtolower($chaine);
$accents = Array("/é/", "/è/", "/ê/","/ë/", "/ç/", "/à/", "/â/","/á/","/ä/","/ã/",
"/å/", "/î/", "/ï/", "/í/", "/ì/", "/ù/", "/ô/", "/ò/", "/ó/", "/ö/");
$sans = Array("e", "e", "e", "e", "c", "a", "a","a", "a","a", "a", "i", "i", "i",
"i", "u", "o", "o", "o", "o");
$chaine = preg_replace($accents, $sans,$chaine);
$chaine = preg_replace('#[^A-Za-z0-9]#','-',$chaine);
// Remplace les tirets multiples par un tiret unique
$chaine = ereg_replace( "\-+", '-', $chaine );
// Supprime le dernier caractère si c'est un tiret
$chaine = rtrim( $chaine, '-' );
while (strpos($chaine,'--') !== false) $chaine = str_replace('--','-',$chaine);
return $chaine;
}
Actuellement tes liens sont sous la forme :
- Code: Tout sélectionner
<a href="http://www.bordeauxpaquebots.com/news.php?id=37">Point sur les escales 2012</a>
et doivent avoir un code à peut près similaire à :
- Code: Tout sélectionner
<a href="http://www.bordeauxpaquebots.com/news.php?id=<?php echo $id;?>"><?php echo $titre;?></a>
Il faut donc modifier tout tes liens de la façon suivante :
- Code: Tout sélectionner
<a href="http://www.bordeauxpaquebots.com/<?php echo $id;?>-<?php echo OptimiseUrl($titre);?>.php"><?php echo $titre;?></a>
Dans cet exemple, la variable "$titre" associé à la fonction "OptimiseUrl" » "OptimiseUrl($titre)" donne comme résultat » "point-sur-les escales-2012".
L'action cumulé du fichier .htaccess + fonction OptimiseUrl + modification des liens donne comme résultat une url du type :
- Code: Tout sélectionner
http://www.bordeauxpaquebots.com/37-point-sur-les-escales-2012.php
Dans le même style : Url rewriting du site dynamique
En espérant t'avoir aidé..
- JohnAtthane
- Nouveau WRInaute

- Messages: 4
- Inscription: 19 Nov 2011
Re: Et avec un titre comment faire ??
Salut,
Merci de ton aide. J'ai bien compris la fin, mais pas le début. Le
Sur ma page news.php j'ai cela:
J'ai bien tenté de le mettre sous
Merci de ton aide. J'ai bien compris la fin, mais pas le début. Le
- Code: Tout sélectionner
$titre=$_GET["titre"];
Sur ma page news.php j'ai cela:
- Code: Tout sélectionner
<?php
/*
Connexion à la BDD
*/
me identifs
/*
Affichage d'une news en particulier
*/
if(isset($_GET['id'])){
$id = intval(htmlentities($_GET['id']));
/*
Si l'id !=0, intval renvoie quelque chose de bon
*/
if($id != 0){
$sql = 'SELECT * FROM news WHERE id='.$id.'';
$req = mysql_query($sql) or die(mysql_error());
$data = mysql_fetch_assoc($req);
echo '<h1 class="news">'.stripslashes($data['titre']).'</h1>';
echo '<div class="fond_contenu">';
echo '<p class="date"> écrit le : '. date("d/m/Y G:i",strtotime ($data['timestamp'])).'</p>';
echo '<p class="fond_contenu">'.(stripslashes($data['contenu'])).'</p>';
echo '</div>';
}
/*
id ==0, intval renvoie certainement qqch de faux
*/
else
{
echo "Erreur";
}
}
/*
Listage des 5 dernières news
*/
else
{
$sql = 'SELECT * FROM news ORDER BY id DESC LIMIT 0,10';
$req = mysql_query($sql) or die(mysql_error());
echo '<h1></h1>';
while($data = mysql_fetch_assoc($req)){
?>
<div>
<h2 class="news"><a href="news.php?id=<?php echo $data['id']; ?>"><?php echo stripslashes($data['titre']);?></a><span class="date">écrit le: <?php echo date("d/m/Y G:i", strtotime ($data['timestamp'])); ?></span></h2>
<div class="fond_contenu"><!-- Cadre News --><p><strong><?php echo stripslashes($data['description']); ?></strong></p></div><!-- Fin Cadre de News -->
<p> </p>
</div>
<?php
}
}
?>
J'ai bien tenté de le mettre sous
- Code: Tout sélectionner
$id = intval(htmlentities($_GET['id']));
-

tryan - WRInaute passionné

- Messages: 2355
- Inscription: 20 Fév 2005
Re: Et avec un titre comment faire ??
Salut,
Sur ta page d'accueil, il faut que tu ajoutes dans un premier temps le titre sur tes urls pour que ça donne un truc du style "id-titre.php".
N'oublie pas la fonction à insérer dans ton fichier...
Dans ton fichier news.php après
tu ajoutes
Dans le listage des 5 dernières news, tu modifies la ligne
en
Sur ta page d'accueil, il faut que tu ajoutes dans un premier temps le titre sur tes urls pour que ça donne un truc du style "id-titre.php".
- Code: Tout sélectionner
<a href="<?php echo $data['id']; ?>-<?php echo OptimiseUrl($data['titre']);?>.php"><?php echo stripslashes($data['titre']);?></a>
N'oublie pas la fonction à insérer dans ton fichier...
Dans ton fichier news.php après
- Code: Tout sélectionner
$id = intval(htmlentities($_GET['id']));
tu ajoutes
- Code: Tout sélectionner
$titre = htmlspecialchars($_GET["titre"]);
Dans le listage des 5 dernières news, tu modifies la ligne
- Code: Tout sélectionner
<a href="news.php?id=<?php echo $data['id']; ?>"><?php echo stripslashes($data['titre']);?></a>
en
- Code: Tout sélectionner
<a href="<?php echo $data['id']; ?>-<?php echo OptimiseUrl($data['titre']);?>.php"><?php echo stripslashes($data['titre']);?></a>
- JohnAtthane
- Nouveau WRInaute

- Messages: 4
- Inscription: 19 Nov 2011
Re: Et avec un titre comment faire ??
Salut,
Merci beaucoup, là j'ai compris !!
Je tente se soir en rentrant de la fac et je dirais si ça fonctionne. Mais ça devrait le faire, merci beaucoup !!
Merci beaucoup, là j'ai compris !!
Je tente se soir en rentrant de la fac et je dirais si ça fonctionne. Mais ça devrait le faire, merci beaucoup !!
6 messages
• Page 1 sur 1
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 :
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
