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

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

rikew
WRInaute impliqué
WRInaute impliqué
 
Messages: 735
Inscription: 19 Déc 2002

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 occasionnel
WRInaute occasionnel
 
Messages: 477
Inscription: 27 Fév 2004

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 impliqué
WRInaute impliqué
 
Messages: 735
Inscription: 19 Déc 2002

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 occasionnel
WRInaute occasionnel
 
Messages: 477
Inscription: 27 Fév 2004

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 impliqué
WRInaute impliqué
 
Messages: 735
Inscription: 19 Déc 2002

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 occasionnel
WRInaute occasionnel
 
Messages: 477
Inscription: 27 Fév 2004

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 impliqué
WRInaute impliqué
 
Messages: 735
Inscription: 19 Déc 2002

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>"; } ?>


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