Exemple rewriting

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


dicsite
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 27
Inscription: 8 Juin 2005

Exemple rewriting

Message le Mer Juil 06, 2005 15:34

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


Patrice A.
WRInaute passionné
WRInaute passionné
 
Messages: 2415
Inscription: 11 Fév 2005

Message le Mer Juil 06, 2005 15:56

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.

Rwrite ur Face
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 1
Inscription: 6 Juil 2005

Message le Mer Juil 06, 2005 17:59

D'autant plus que le fichier .htacess doit se trouver à la racine du site !


Patrice A.
WRInaute passionné
WRInaute passionné
 
Messages: 2415
Inscription: 11 Fév 2005

Message le Jeu Juil 07, 2005 6:49

Rwrite ur Face a écrit:D'autant plus que le fichier .htacess doit se trouver à la racine du site !
faux.


dicsite
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 27
Inscription: 8 Juin 2005

Message le Jeu Juil 07, 2005 13:49

Merci de vos réponses.

sa marche effectivement avec les url
qui n'ont qu'un seul parametre


dicsite
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 27
Inscription: 8 Juin 2005

Message le Sam Juil 09, 2005 13:38

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


dicsite
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 27
Inscription: 8 Juin 2005

Message le Sam Juil 09, 2005 14:13

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]


Patrice A.
WRInaute passionné
WRInaute passionné
 
Messages: 2415
Inscription: 11 Fév 2005

Message le Sam Juil 09, 2005 14:58

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:


dicsite
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 27
Inscription: 8 Juin 2005

Message le Lun Juil 11, 2005 10:37

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


Patrice A.
WRInaute passionné
WRInaute passionné
 
Messages: 2415
Inscription: 11 Fév 2005

Message le Lun Juil 11, 2005 11:12

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 ;)


chantra
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 257
Inscription: 27 Juin 2005

Message le Lun Juil 11, 2005 11:24

pourquoi ne pas faire une regle specifique a liste.php?
http://www.bricbroc.net/bricbroc/liste- ... vures.html
du style:
Code: Tout sélectionner
RewriteRule ^liste-cat-([0-9]+)-categorie-([0-9]+)-t1-(.+)-t2-(.+).html$ /bricbroc/liste.php?cat=$1&categorie=$2&t1=$3&t2=$4


dicsite
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 27
Inscription: 8 Juin 2005

Message le Lun Juil 11, 2005 11:38

Un grand merci a Dj_Apx qui m'a mis sur la bonne piste:

FAIRE DU CAS PAR CAS.

et ça marche:

pour :

http://www.bricbroc.net/bricbroc/liste- ... vures.html

je fais :

RewriteRule ^liste-cat-([0-9]+)-categorie-([0-9]+)-t1-([A-Za-z]+)-t2-([A-Za-z]+).html$ /bricbroc/liste.php?cat=$1&categorie=$2&t1=$3&t2=$4 [L]


dicsite
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 27
Inscription: 8 Juin 2005

Message le Lun Juil 11, 2005 11:41

HOUPS!
Merci chantra, je viens justement de le faire.
j'ai meme enlevé ma boucle [N]


chantra
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 257
Inscription: 27 Juin 2005

Message le Lun Juil 11, 2005 11:51

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: .


dicsite
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 27
Inscription: 8 Juin 2005

Message le Jeu Juil 14, 2005 11:35

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


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