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

WRInaute impliqué
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
 
WRInaute occasionnel
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...
 
WRInaute impliqué
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...
 
WRInaute occasionnel
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...
 
WRInaute impliqué
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 :)
 
WRInaute occasionnel
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...
 
WRInaute impliqué
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>"; } ?>
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut