Exemple rewriting

Bonjour,
j'ai installé un URL rewriting avec .htaccess
le fichier .htaccess est dans le repertoire /bricbroc/
voici le code

RewriteEngine on
RewriteRule (.*)(-.+)-([^-]+)-([^-&]*)([^-]*)\.html /bricbroc/$1$2&$3=$4$5\.html [N]
RewriteRule (.*)-([^-]+)-([^-]*)(.*)\.html /bricbroc/$1.php?$2=$3$4 [L]
RewriteRule ^(.*).html /bricbroc/$1.php [L]



J'utilise une fonction de convertion de mes url

function lienurlrewriting($url) {
if (eregi("(.*).php(.*)",$url,$regs)) {
$monurl = $regs[1];
$geturl = $regs[2];
while (eregi("(.*)(\?|&)([^=]+)=([^=]*)(.*)",$geturl,$regs)) {
$geturl = $regs[1]."-".$regs[3]."-".$regs[4].$regs[5];
}
$url = $monurl.$geturl;
} elseif(eregi("(.*).php",$url,$regs)) {
$url = $regs[1];
}
return $url.".html";
}




Mais probleme :twisted:

l'url

http://www.bricbroc.net/bricbroc/liste-cat-4-categorie-3-t1-Art-t2-Gravures.html

ne marche pas!
url de base : http://www.bricbroc.net/bricbroc/liste.php?cat=4&categorie=3&t1=Art&t2=Gravures

Si qqun pouvait me dire où j'ai merd....

Merci d'avance
 
Salut, ne le prends pas mal, mais c'est pas logique, ça a pas l'air structuré pour un sou tes deux règles.

Tes URL ont 4 paramètres et il n'y en a qu'un dans ta réécriture (un seul signe "="). Rien que pour ça, ça ne peut pas marcher.
 
J'ai beau le tourner dans tous les sens, sa ne marche qu'avec les url ayant qu'un seul parametre.

qqun peut m'expliquer... :oops:


merci
 
que pensez vous de ca?


RewriteEngine on
RewriteRule (.*)(-.+)-([^-]+)-([^-&]*)([^-]*)\.html /bricbroc/$1$2&$3=$4$5\.html [N]
RewriteRule (.*)-([^-]+)-([^-]*)(.*)\.html /bricbroc/$1.php?$2=$3$4&$5=$6$7&$8=$9$10&$11=$12$13 [L]
RewriteRule ^(.*).html /bricbroc/$1.php [L]
 
Que c'est très moche.
Je parie que tu n'as qu'un seul PHP (liste.php) ciblé par ta réécriture, non ?
et que ses arguments sont toujours cat, categorie, t1 et t2 ?
alors pourquoi tu ne peux pas faire tes règles "comme tout le monde" ? jette un oeil aux milliers d'exemples disponibles sur WRI et sur internet :wink:
 
lol,
merci en tous cas de me répondre.
Je reconnais que c trés moche.
Ma égle est bonne pourtant : [N] devrait faire la boucle de
réécriture de mon url .html....

quoi qu'il en soit sa marche pour une seul variable
je vais essayé de m'arenger avec mon code.

cependant a quoi bon faire ça si je ne peus passer plus de deux variables(google référence bien une variable, non?)

Et puis le fichier "liste.php" n'est pas le seul siblé: apres lui
il y a "detail.php" qui détient le recore en déclinaison ;-)

Merci encore
 
Dans ce cas, avec une règle par fichier et par nombre de paramètres, tu y arriveras.
Une règle pour liste.php avec 4 param
une autre pour liste.php avec 3 param

une pour detail.php avec 6 param
un autre pour 5
une autre pour 4

Ca sera plus propre, et ça, au moins, ça marche ;)
 
avec grand plaisir :D

d'ailleurs, faudrait que je m'occupe de mes regles a moi....c'est un de ces bordel dans mon fichier :lol: .
 
Juste pour dire que j'ai améioré le script de convertion de mes url a cause des accents :
j' ai rajouté > $url = strtr($url, "éèêëàâîï", "eeeeaaii");

sa donne :

function lienurlrewriting($url) {
if (eregi("(.*).php(.*)",$url,$regs)) {
$monurl = $regs[1];
$geturl = $regs[2];
while (eregi("(.*)(\?|&)([^=]+)=([^=]*)(.*)",$geturl,$regs)) {
$geturl = $regs[1]."-".$regs[3]."-".$regs[4].$regs[5];
}
$url = $monurl.$geturl;
} elseif(eregi("(.*).php",$url,$regs)) {
$url = $regs[1];
}
$url = strtr($url, "éèêëàâîï", "eeeeaaii");
return $url.".html";
}
 

➡️ 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