RewriteRule ^(Directory|Annuaire)/$ index.php?lang=$1

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

rikew
WRInaute passionné
WRInaute passionné
 
Messages: 548
Inscription: Jeu Déc 19, 2002 19:53

RewriteRule ^(Directory|Annuaire)/$ index.php?lang=$1

Message le Jeu Nov 25, 2004 13:04

J'aimerai transformer :

Directory/ en index.php?lang=en
Annuaire/ en index.php?lang=fr

En faisant 2 règles c'est pas très dur.
Seulement j'ai beaucoup de répertoires et sous-répertoires.
Si j'utilise une règle par langue, ça va faire beaucoup de règle.
J'aimerai bien trouver une solution qui tienne en une règle…

Ça doit ressembler à :

RewriteRule ^(Directory|Annuaire)/$ index.php?lang=$1

Avec $1 qui est égal à fr ou en.

Si quelqu'un a une solution …
Merci d'avance :D


maxttb
WRInaute impliqué
WRInaute impliqué
 
Messages: 477
Inscription: Ven Fév 27, 2004 16:36

Message le Jeu Nov 25, 2004 22:53

Je doute fortement que quelqu'un trouve une solution à ton problème. Les regex sont puissantes, certes, mais ce n'est pas non plus un langage de programmation...

rikew
WRInaute passionné
WRInaute passionné
 
Messages: 548
Inscription: Jeu Déc 19, 2002 19:53

Message le Ven Nov 26, 2004 9:31

En fait j'ai une solution.. mais ça n'est pas clean …
En utilisant cette règle, je récupère sur mes pages soit : « Directory », soit « Annuaire »
Par comparaison je retrouve la langue …
Vu que j'ai beaucoup de catégories et sous-catégories ça fait beaucoup de comparaisons...


maxttb
WRInaute impliqué
WRInaute impliqué
 
Messages: 477
Inscription: Ven Fév 27, 2004 16:36

Message le Ven Nov 26, 2004 9:37

Je crois que c'est la meilleure (et peut être la seule) solution. Il est clair que si c'est un annuaire et que tu veuilles faire ca pour toutes les catégories, ca risque d'être un peu lourd, et peu fiable dans le cas où plusieurs catégorie portent le même nom...

rikew
WRInaute passionné
WRInaute passionné
 
Messages: 548
Inscription: Jeu Déc 19, 2002 19:53

Message le Ven Nov 26, 2004 9:52

Oui, heureusement pour moi le nom est unique.
Mais bon … ça peut intéresser du monde …
Un annuaire avec des urls qui s'adapte à la langue du visiteur …
Google va apprécier ! enfin j'espère :)


maxttb
WRInaute impliqué
WRInaute impliqué
 
Messages: 477
Inscription: Ven Fév 27, 2004 16:36

Message le Ven Nov 26, 2004 9:58

Y'a qu'à voir comme il apprécie DMOZ! En fait, il faudrait, pour éviter de selectionner les doublons, extraire toute l'arborescence de la page.
Par exemple:
RewriteRule ^(Directory|Annuaire)/(([a-zA-Z0-9\s]/)+)$ annu.php?path=$2
Et séparer à la main toutes les catégories.
A la limite, en incluant la langue dans chaque enregistrement de catégorie, tu pourrais retrouver la langue à afficher...

rikew
WRInaute passionné
WRInaute passionné
 
Messages: 548
Inscription: Jeu Déc 19, 2002 19:53

Message le Ven Nov 26, 2004 10:23

Si ca peut servir ...

RewriteRule ^(annuaire|directory)/$ index.php?nlg=$1&p=search
RewriteRule ^(annuaire|directory)/([a-zA-Z0-9-]*)/$ index.php?p=search&nlg=$1&cat=$2&pg=1
RewriteRule ^(annuaire|directory)/([a-zA-Z0-9-]*)/p([0-9]*).html$ index.php?p=search&nlg=$1&cat=$2&pg=$3
RewriteRule ^(annuaire|directory)/([a-zA-Z0-9-]*)/([a-zA-Z0-9-]*)/$ index.php?p=search&nlg=$1&cat=$2&scat=$3&pg=1
RewriteRule ^(annuaire|directory)/([a-zA-Z0-9-]*)/([a-zA-Z0-9-]*)/p([0-9]*).html$ index.php?p=search&nlg=$1&cat=$2&scat=$3&pg=$4

J'ai définis mes variables dans $link comme ca :

// root

$link['fr-annuaire'] = "annuaire";
$link['en-annuaire'] = "directory";

// categories

$link['fr-cat-1'] = "Voiture";
$link['en-cat-1'] = "Car";

$link['fr-cat-2'] = "Maison";
$link['en-cat-2'] = "Home";

// souscategorie

$link['fr-scat-1'] = "Neuf";
$link['en-scat-1'] = "New";

$link['fr-scat-2'] = "Vieu";
$link['en-scat-2'] = "Old";


Dans l'entete de mes pages j'ai mis :

if (isset($nlg)) {
if ($nlg==$link['fr-annuaire']) {$lg="fr";}
if ($nlg==$link['en-annuaire']) {$lg="en";}
}


Pour le liens anglais / francais (sur toutes les pages), j'ai fait :

$link_en = $_SERVER['REQUEST_URI'];
$link_fr = $_SERVER['REQUEST_URI'];

if ($nlg) {
$link_en = str_replace($link['fr-annuaire'], $link['en-annuaire'], $link_en);
$link_fr = str_replace($link['en-annuaire'], $link['fr-annuaire'], $link_fr);
}

if ($cat) {
$link_en = str_replace($link['fr-cat-'.$cat], $link['en-cat-'.$cat], $link_en);
$link_fr = str_replace($link['en-cat-'.$cat], $link['fr-cat-'.$cat], $link_fr);
}

if ($scat) {
$link_en = str_replace($link['fr-scat-'.$scat], $link['en-scat-'.$scat], $link_en);
$link_fr = str_replace($link['en-scat-'.$scat], $link['fr-scat-'.$scat], $link_fr);
}

<?php if ($lg!="en") { echo "<a href=\"".$link_en."\">"; } ?><img src="en.gif" border="0" alt=""><?php if ($lg!="en") { echo "</a>"; } ?>

<?php if ($lg!="fr") { echo "<a href=\"".$link_fr."\">"; } ?><img src="fr.gif" border="0" alt=""><?php if ($lg!="fr") { echo "</a>"; } ?>


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