Conditions et logique dans un fichier htaccess "dynamiq

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

dsaunier
WRInaute discret
WRInaute discret
 
Messages: 55
Inscription: Sam Nov 19, 2005 1:06

Conditions et logique dans un fichier htaccess "dynamiq

Message le Lun Jan 09, 2006 11:36

Bonjour,

Ma question comme je suis relativement débutant avec les htaccess, est de savoir si comme pour des langages Perl ou PHP, on peut y placer des conditions et tests logiques ?
Dans mon cas de figure, je souhaiterais proposer aux visiteurs deux manières de lister des références d'une société, par type de service rendu ou par secteur d'activité du client. Ce sont les mêmes fiches références qui sont appelées mais leur ordre dépend de la manière dont la page est appelée, et donc de son URL :
En ex1 on aura references-diagnostic-lot.html ce que le htaccess mettra en references.php?service=diagnostic&dpt=lot
En 2 on aura references-culture-tarn.html ce que le htaccess devrait mettre en references.php?secteur=culture&dpt=tarn

Ces deux pages commencent par references ce qui sert à appeler la page-modèle references.php mais je me demandais si ensuite je dois mettre "en dur" dans mon fichier htaccess tous les mots-clefs pour que le site sache que si le 2eme mot-clef de l'URL est diagnostic alors ca doit devenir references.php?service=diagnostic mais que s'il s'agit de "culture" ou "tourisme" alors ca va etre "references.php?secteur="
Cela risque de donner un fichier lourd et à changer éventuellement...A voir d'ailleurs comment l'écrire car je ne le vois pas...
Ou alors au mieux, serait-il par exemple possible de déclarer dans un fichier htaccess un tableau de mots-clefs, et de faire en sorte donc que si le 2ème terme de mon URL est dedans alors le lien devient ceci, sinon cela...

J'espère être assez clair, j'imagine que ce cas doit concerner pas mal de monde qui veut faire des URL optimisés ?

merci à tous.


mr_go
WRInaute accro
WRInaute accro
 
Messages: 1945
Inscription: Mer Sep 21, 2005 16:02

Message le Lun Jan 09, 2006 14:14

Le mieux c'est de changer le nom de la page reference (qui ne sert à rien pour le référencement du reste) et de mettre un autre terme ("service" ou "secteur").

un truc comme ceci peut être :

RewriteRule ^(*.)-(.*)-(.*).html$ reference.php?$1=$2&dpt=$3


Du coup tu aurais des pages écrites comme ceci :

service-diagnostic-lot.html
secteur-culture-tarn.html

etc...

Une seule ligne sur le htaccess. (Par contre les (.*) sont à éviter mieux vaut des expressions plus "étroites" comme ([::alphanum::]) ).

J'espère que je suis assez clair.


@+

dsaunier
WRInaute discret
WRInaute discret
 
Messages: 55
Inscription: Sam Nov 19, 2005 1:06

Message le Lun Jan 09, 2006 16:29

Merci de la réponse,
J'ai quand même l'impression que ce premier mot-clef que j'utilise aussi pour déterminer la page PHP sert quand même en référencement puisque certaines pages seront donc appelées references-diagnostic-lot.html et d'autres dans une autre partie services-diagnostic-etudes.html par exemple, donc cela parle du sujet de la page ?

Le principe de rewrite que tu soulignes m'a l'air parfait mais seulement dans le cas d'une partie du site, ici il n'y a donc pas QUE des pages décrivant les références : partie Services, partie Contact, etc.

Ce qu'il me faudrait reviendrait donc à une sorte de htaccess dynamique qui ferait

Si le terme de l'URL dépend de la partie Références, alors
RewriteRule ^(*.)-(.*)-(.*).html$ references.php?$1=$2&dpt=$3

Si le terme de l'URL dépend de la partie Services, alors
RewriteRule ^(*.)-(.*)-(.*).html$ services.php?$1=$2&dpt=$3

etc. J'avais construit les URLs de manière à ce que ce premier terme serve un peu en référencement et aussi en technique pour appeler le template pertinent...je suis ouvert à toute critique ! ;)


mr_go
WRInaute accro
WRInaute accro
 
Messages: 1945
Inscription: Mer Sep 21, 2005 16:02

Message le Lun Jan 09, 2006 16:43

Si le terme de l'URL dépend de la partie Références, alors
RewriteRule ^(*.)-(.*)-(.*).html$ references.php?$1=$2&dpt=$3

Si le terme de l'URL dépend de la partie Services, alors
RewriteRule ^(*.)-(.*)-(.*).html$ services.php?$1=$2&dpt=$3


Ce n'est plus le même cas que cité précédemment :
En ex1 on aura references-diagnostic-lot.html ce que le htaccess mettra en references.php?service=diagnostic&dpt=lot
En 2 on aura references-culture-tarn.html ce que le htaccess devrait mettre en references.php?secteur=culture&dpt=tarn


De toute facon dans ton fichier html généré l'url sera marquée en dur
references-culture-tarn.html.

Il faudrait donc tester dans ton fichier PHP, les mots clés passés en paramêtres ici si $2== culture alors on affiche la page culture du dpt $3 (tarn).

J'ai l'impression que ton problème vient du nom de tes variables PHP et non de l'url Rewriting... :/

service=diagnostic
secteur=xxx...

dsaunier
WRInaute discret
WRInaute discret
 
Messages: 55
Inscription: Sam Nov 19, 2005 1:06

Message le Lun Jan 09, 2006 18:13

C'est peut être mon explication qui aurait pu être plus détaillée mais je ne voulais pas compliquer. En fait on est bien dans le même cas, le site fonctionne en plusieurs parties, et dans l'une d'entre elles, Références, on peut choisir le mode d'affichage, par service rendu ou par secteur d'activité. Les liens seront bien en dur mais il y aura deux menus de liens "en dur" différents pour cette section selon l'affichage choisi, le 1er comportant des liens HTML qui se transforment en references.php?service=... et le 2nd qui les modifie en references.php?secteur=...

Dans la page PHP il y aura bien un test sur les termes composant l'URL, ma question était de savoir si je pouvais dans l'htaccess faire des tests logiques pour savoir comment réécrire les URL car sinon cela oblige à mettre en dur dans ce fichier des termes exacts pour toutes les langues, alors que tout le site est dynamique et que ces mots-clefs peuvent changer.

La question reste en fait aussi le choix des URL à écrire, et je ne sais pas si mes choix sont les bons : je pourrais aussi avoir site/fr/references/culture-tarn.html et en analysant que le nom de page commence par culture, savoir que l'affichage est par secteur de client, mais pas facile de choisir le type d'URL qui sera le mieux pour Google.
Merci de l'aide en tous cas !


mr_go
WRInaute accro
WRInaute accro
 
Messages: 1945
Inscription: Mer Sep 21, 2005 16:02

Message le Mar Jan 10, 2006 8:10

et que ces mots-clefs peuvent changer.


Attention au duplicate content... ca va te faire faire des redirections 301 de partout c'est assez dangerous.

Le choix de l'URL est bon pour ma part.

culture-tarn.html et en analysant que le nom de page commence par culture, savoir que l'affichage est par secteur de client


Dans le htaccess
Code: Tout sélectionner
RewriteRule ^references/(.*)-(.*).html$    references.php?$1=$2 [NC,L]


Du coup dans ton php tu peux tester
Code: Tout sélectionner
if (isset($_GET['culture']))
{//affichage service rendu}
else
{//affichage secteur activité}


Voila voila


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