url rewriting simple

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

breizh_web
WRInaute discret
WRInaute discret
 
Messages: 83
Inscription: 14 Sep 2005

url rewriting simple

Message le Dim Déc 18, 2005 21:04

Bonjour,

Je pense depuis longtemps faire l'url rewriting pour un de mes sites et je viens de faire un test avec une règle simple mais ça ne marche pas.

Voici ce que j'ai mis dans le .htaccess, mon hébergeur les accepte.
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^index\.html$ index.php [L]
mais quand j'essaie d'appeler la page index.html j'ai une erreur 404 qui me dit que le fichier index.php n'est pas trouvé, je comprends pas

En fait je souhaite utiliser l'url rewriting ensuite sur des adresses du type recette.php?id=1 et avoir mon-titre-recette.html dans le but d'améliorer le référencement mais vu que déjà ça j'y arrive pas, c'est décourageant et comme je débute je n'arrive pas à trouver l'erreur, alors si quelqu'un pouvait m'aider ça me serait d'un grand secours

Merci d'avance :wink:


Borower
WRInaute passionné
WRInaute passionné
 
Messages: 2151
Inscription: 18 Avr 2005

Message le Dim Déc 18, 2005 21:11

Peut etre avec :
Code: Tout sélectionner
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^index\.html$ /index.php [L]


Mais bon je ne verrais pas pourquoi.

breizh_web
WRInaute discret
WRInaute discret
 
Messages: 83
Inscription: 14 Sep 2005

Message le Dim Déc 18, 2005 21:16

Non avec ça aussi ça me donne le même message d'erreur :
The requested URL /index.php was not found on this server.


Borower
WRInaute passionné
WRInaute passionné
 
Messages: 2151
Inscription: 18 Avr 2005

Message le Dim Déc 18, 2005 21:24

Code: Tout sélectionner
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^exemple.com$
RewriteRule ^(.*)   http://www.exemple.com/$1  [QSA,L,R=301]


Teste ce code pour voir
Appelle ton site sans les www
Tu dois avoir une redirection vers les www

breizh_web
WRInaute discret
WRInaute discret
 
Messages: 83
Inscription: 14 Sep 2005

Message le Dim Déc 18, 2005 21:37

Je ne comprends pas trop le truc que tu as mis plus haut mais je viens de changer ça en :
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^recette-philomene.com$
RewriteRule ^(.*) http://www.recette-philomene.com/$1 [QSA,L,R=301]

Par rapport à mon nom de domaine et quand j'appelle recette-philomene[.]Com et bien ça marche, c'était pour faire une vérification, un test sur l'url rewritting sur le serveur ?


Borower
WRInaute passionné
WRInaute passionné
 
Messages: 2151
Inscription: 18 Avr 2005

Message le Dim Déc 18, 2005 22:35

Oui c'etait pour faire un test sur le serveur.
Si ça ça marche ba je ne voit pas pourquoi ton test simple ne marche pas.
C'est un mystere.
DSL mais la je ne vois pas

breizh_web
WRInaute discret
WRInaute discret
 
Messages: 83
Inscription: 14 Sep 2005

Message le Dim Déc 18, 2005 22:45

Je viens de trouver un truc qui marche :
Options FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteRule ^(.*).html $1.php

ça ça marche pour toutes mes pages sans passage de parametre dans l'url alors c'est déjà ça :)
Ensuite va falloir que je vois comment traduire mes autres adresses, je voudrais avoir le titre de la recette dans l'url mais pour l'instant je passe l'id parce que je sais pas comment enlever les espaces et les remplacer par des tirets et les lettres accentuées !!!

J'ai vu que sur ton site tu utilises l'url rewriting et que l'url des pages c'est le titre du tableau correspondant, comment fais-tu pour enlever les caractères accentués des titres des tableaux ou bien as tu dans ta base un ligne pour chaque tableau ou tu met le titre avec les tirets et sans caractères accentués, je ne sais pas si je suis très claire là.

du genre dans ma base une ligne pour chaque recette avec le titre comme ça : blanquette-veau

Ou bien peut-on dire que Blanquette de veau doit etre traduit en blanquette-veau ???

ça fait beaucoup de question en même temps :(


Borower
WRInaute passionné
WRInaute passionné
 
Messages: 2151
Inscription: 18 Avr 2005

Message le Dim Déc 18, 2005 22:56

Voila comment supprimer les accents
Code: Tout sélectionner
<?
function suppaccents($mot){
$accents = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ";
$ssaccents = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn";
return(strtr($mot,$accents,$ssaccents));
}
?>


Si tu recupere le nom de ta recette avec une requette SQL grace a l' ID de la recette tu peux utiliser comme regle:
Code: Tout sélectionner
Options FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteRule ^([0-9]*)-(.*).html article.php?id=$1


Apres a toi de voir comment integrer ton htaccess

Donne moi l'adresse de ton site Web s tu souhaite de l 'aide.

breizh_web
WRInaute discret
WRInaute discret
 
Messages: 83
Inscription: 14 Sep 2005

Message le Lun Déc 19, 2005 9:03

Je te remercie pour la fonction pour enlever les accents, je vais essayer, l'adresse de mon site est www[.]recette-philomene[.]com,

mais pour l'instant je passe l'id de la recette dans l'url alors il va falloir que je modifie ça pour passer le titre avant de penser à faire de l'url rewriting avec le titre dans l'adresse, non ? :?


Borower
WRInaute passionné
WRInaute passionné
 
Messages: 2151
Inscription: 18 Avr 2005

Message le Lun Déc 19, 2005 20:41

breizh_web a écrit:Mais pour l'instant je passe l'id de la recette dans l'url alors il va falloir que je modifie ça pour passer le titre avant de penser à faire de l'url rewriting avec le titre dans l'adresse, non ? :?


Non fait les deux en meme temps.
Si tu passe le titre de la recette dans ton code PHP ca va te faire beaucoup de boulot.
Change tout tes liens
Fais le htaccess en meme temps.


Exemple tu recupere l'id de la recette ainsi que son titre
Tu affiche l'adresse de ta page rewriter du style titre-de-la-recette-id.htm
Avec ton htaccess il te fera la redirection vers article.php?id=id sans tenir compte du titre de la recette.
Le tour est joué Google prendra bien en compte le titre de la recette meme si pour ton fichier PHP cela ne sert a rien.

breizh_web
WRInaute discret
WRInaute discret
 
Messages: 83
Inscription: 14 Sep 2005

Message le Mar Déc 20, 2005 20:26

Désolé j'étais absente hier !

Là je crois que je ne comprends pas tout ?

Mes liens sont du type recette.php?id=id, tu voudrais que je remplace mes liens par titre-de-la-recette.html mais comment le faire dans le htaccess, je comprend bien comment réécrire recette.php?id=id en recette-id.html mais comment dire que recette.php?id=id en titre-recette.html

Là je ne vois pas comment faire, par contre une chose est sur dans le fichier php j'ai bien de toute façon sorti le titre et l'id.

Dans le cas où on met le titre dans l'url comment est-il possible de remplacer les espaces par des tirets ?

Je ne sais pas si on peut mais est-il possible d'enlever les mots du style "le,la,les,..." pour ne pas que ça aille dans le titre sinon ça pourrait faire des titres longs quand même !!!

ça fait beaucoup de questions en une seule fois :wink:


Borower
WRInaute passionné
WRInaute passionné
 
Messages: 2151
Inscription: 18 Avr 2005

Message le Mar Déc 20, 2005 23:49

Je vais etre plus simple:

Prenons l'exemple de ta recette:
recette.php?id_recette=20
Avec comme titre de recette:
Crevettes au piment de Cayenne

Dans ton code PHP pour l'affichage de la liste des recettes:
tu modifie le lien vers la rectte qui est du style
Code: Tout sélectionner
<a href="recette.php?id_recette=$id">$titreid</a>

en
Code: Tout sélectionner
<a href="$titreid-$id.htm">$titreid</a>


Avec ton htaccess tu met:
Code: Tout sélectionner
Options FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteRule ^(.*)-([0-9]*).html /recette.php?id_recette=$2 [L]


Si tu souhaite supprimer les espaces et les accents, tu effectue ce bout de code avant:
Code: Tout sélectionner
function suppaccents($titreid){
$accents = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ ";
$ssaccents = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn-";
return(strtr($titreid,$accents,$ssaccents));
}


Maintenant tu devrais avoir un lien comme celui ci:
Code: Tout sélectionner
<a href="Crevettes-au-piment-de-Cayenne-20.htm">Crevettes au piment de Cayenne</a>



Voila je ne sais pas si j'ai été assez claire.
DSL pour les fautes d'orthographes.

breizh_web
WRInaute discret
WRInaute discret
 
Messages: 83
Inscription: 14 Sep 2005

Message le Mer Déc 21, 2005 21:12

Ce que je comprends pas ce comment le htacces permet dire que (.*) doit etre remplacer par le titre de la recette vu qu'il n'est pas dans recette.php?id_recette=id

Mes requetes se servent de $_GET["id_recette"]) pour afficher les différents élements de la recette alors qu'en sera-t-il ensuite, je n'aurais pas besoin de changer ça dans le php, enfin c'est ce que je comprends par contre je comprends vraiment pas du tout comment il va savoir que (.*) doit etre remplacer par le titre de la recette.

En plus dans mon code php je vois pas comment mettre en oeuvre suppaccents, là je me dis que je suis nulle :cry:

Enfin, voilà le code de la requete de ma page liste des recettes par exemple qui affiche une liste des recettes suivant la catégorie :
$query="select r.id, r.titre, r.img_dif, r.tps_prepa, r.tps_cuisson from recette r, recette_cat rc ";
$query.="where r.id=rc.id and (rc.nom_cat='".$name_cat."') order by r.titre";
$result=mysql_query($query,$cnx);

while($recette=mysql_fetch_array($result)){
$data["listes"].="<li class=\"liste\">
<span class=\"top liste_titre\"><a href=\"recette.php?id_recette=".$recette[id]."\"><img src=\"images/fleche.gif\" alt=\"->\" /> ".$recette[titre]."</a></span>
<span class=\"top liste_difficulte\"><img src=\"images/".$recette[img_dif]."\" alt=\"difficulté\" width=\"48px\" height=\"16px\" /></span>
<span class=\"top liste_tps_prepa\">".$recette[tps_prepa]."</span>
<span class=\"top liste_tps_cuisson\">".$recette[tps_cuisson]."</span>
</li>\n\r";
}

mais je vois pas comment mettre en oeuvre suppaccents dans la rectte pour remplacer recette.php?id_recette= dans le code par suppaccents de mon titre ???

Je ne sais pas si tu vas pouvoir m'aider là, j'espère parce que là je m'y perds, j'ai essayer supaccents sur le titre sur les pages de recette ça marche bien par contre mais c'est pas là qu'il faut que je le mette en oeuvre et dans cette requete je ne vois pas comment

Merci d'avance
:wink:


Borower
WRInaute passionné
WRInaute passionné
 
Messages: 2151
Inscription: 18 Avr 2005

Message le Jeu Déc 22, 2005 23:20

Salut

Voici comment mettre en place ton php

Premier code sans la suppression d'accent:
Fichier PHP
Code: Tout sélectionner
$query="select r.id, r.titre, r.img_dif, r.tps_prepa, r.tps_cuisson from recette r, recette_cat rc ";
$query.="where r.id=rc.id and (rc.nom_cat='".$name_cat."') order by r.titre";
$result=mysql_query($query,$cnx);


while($recette=mysql_fetch_array($result)){
$data["listes"].="<li class=\"liste\">
<span class=\"top liste_titre\"><a href=\"".$recette[titre]."-".$recette[id].".htm\"><img src=\"images/fleche.gif\" alt=\"->\" /> ".$recette[titre]."</a></span>
<span class=\"top liste_difficulte\"><img src=\"images/".$recette[img_dif]."\" alt=\"difficulté\" width=\"48px\" height=\"16px\" /></span>
<span class=\"top liste_tps_prepa\">".$recette[tps_prepa]."</span>
<span class=\"top liste_tps_cuisson\">".$recette[tps_cuisson]."</span>
</li>\n\r";
}

Fichier Htaccess
Code: Tout sélectionner
Options FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteRule ^(.*)-([0-9]*).html /recette.php?id_recette=$2 [L]



Avec la suppression d 'accent mais pas sur que cela marche:
Fichier PHP
Code: Tout sélectionner
$query="select r.id, r.titre, r.img_dif, r.tps_prepa, r.tps_cuisson from recette r, recette_cat rc ";
$query.="where r.id=rc.id and (rc.nom_cat='".$name_cat."') order by r.titre";
$result=mysql_query($query,$cnx);

$recettetitresuppaccent=$recette[titre];

function suppaccents($recettetitresuppaccent){
$accents = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ ";
$ssaccents = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn-";
return(strtr($recettetitresuppaccent,$accents,$ssaccents));
}

while($recette=mysql_fetch_array($result)){
$data["listes"].="<li class=\"liste\">
<span class=\"top liste_titre\"><a href=\"$recettetitresuppaccent-".$recette[id].".htm\"><img src=\"images/fleche.gif\" alt=\"->\" /> ".$recette[titre]."</a></span>
<span class=\"top liste_difficulte\"><img src=\"images/".$recette[img_dif]."\" alt=\"difficulté\" width=\"48px\" height=\"16px\" /></span>
<span class=\"top liste_tps_prepa\">".$recette[tps_prepa]."</span>
<span class=\"top liste_tps_cuisson\">".$recette[tps_cuisson]."</span>
</li>\n\r";
}


Fichier Htacccess ne change pas.

Quand tu dis
Ce que je comprends pas ce comment le htacces permet dire que (.*) doit etre remplacer par le titre de la recette vu qu'il n'est pas dans recette.php?id_recette=id


Je vais essayé de repondre a ta question:
Le fichier PHP appelle une page rewrité donc qui n'existe pas.
Grace au htaccess
La page demandé est renvoyé vers la veritable page Web
Ainsi, en appellant n'importe quelle page Web et avec son id nous nous retrouvons toujours avec la page de l'id
Exemple:

J'appelle la page recetteauxpoissons-12.htm
Le htaccess te redirigera vers la page recette.php?id_recette=12

J'appelle la page recetteavecviande-12.htm
Le htaccess te redirigera vers la page recette.php?id_recette=12


C'est comme cela que de nombreux site Web ce creer enormement de pages satelite.
En realite il n'existe qu'une seul page Web, mais appellé sous differents noms.

Attention a cette technique, risque de duplicate content, puis des senctions par google.



Voila je sais pas si j'ai été tres comprehensible :cry:

breizh_web
WRInaute discret
WRInaute discret
 
Messages: 83
Inscription: 14 Sep 2005

Message le Ven Déc 23, 2005 8:44

Merci si tu as été compréhensible je vais essayer de mettre ça en oeuvre dans la journée. Ne t'inquiète pas je ne créerais pas de page satellitte j'en connais les risques et je n'ai pas intérêt à faire ça pour mon site de recette qui a déjà pas mal de visites. :wink:

Merci de ton aide, maintenant à moi de tester !

url rewriting simple

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 :



Qui est en ligne

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