Conflits entre deux regles - votre avis

Nouveau WRInaute
Bonjour,

j'ai un petit soucis sur ce fichier HTACCESS. Quelqu'un plus experimenté pourrait-il me dire ce que je dois changer pour que cela fonctionne correctement ?

J'ai une erreur 500 comme ca :
Internal Server Error

Le probleme se pose sur les pages produits, j'ai plusieurs URL possible :

Code:
http://localhost/oralto/index.php?cPath=3_10&sort=2a&action=buy_now&products_id=31
(bt commander - listing)

http://localhost/oralto/product_info.php?cPath=3_10&products_id=10 (lien image
ou texte vers la fiche produit)

http://localhost/oralto/product_info.php?products_id=15 (image lien vers la
fiche produit colonne de gauche et de droite)

Du coup je suis obligé de faire plusieurs regles non ? Et je pense que ces regeles rentre en conflits. Voici mon fichier HTACCESS (voir les regles "product_info"):

Merci pour vos réponses !!!

Code:
# -FrontPage-

RewriteEngine on

RewriteRule (.*)*-c(.+)\.html$ $1/index.php?cPath=$2 [L]

RewriteRule (.*)*-p(.+)\.html$
$1/product_info.php?products_id=$2 [L]

RewriteRule ^(.*)-c([^-]+)-p([^-]+)\.html$ 
$1/product_info.php?cPath=$2&products_id=$3 [L]

RewriteRule ^(.*)-c([^-]+)-s([^-]+)-p([^-]+)\.html$
$1/index.php?cPath=$2&sort=$3&page=$4 [L]

RewriteRule (.*)*-m(.+)\.html$ $1/index.php?manufacturers_id=$2 [L]

RewriteRule (.*)designer-.*-d(.+)\.html$ 
$1/designers_info.php?designers_id=$2 [L]


RewriteRule (.*)notre-societe\.html$ $1compagny.php [L]
RewriteRule (.*)contactez-nous\.html$ $1contact_us.php [L]
RewriteRule (.*)meilleures-ventes\.html$ $1products_new.php [L]

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


IndexIgnore .htaccess */.??* *~ *# */HEADER* */README* */_vti*

<Limit GET POST>
order deny,allow
deny from all
allow from all
</Limit>
<Limit PUT DELETE>
order deny,allow
deny from all
</Limit>
AuthName www.oralto.com
ErrorDocument 404 http://www.oralto.com/index.html
 
WRInaute accro
il suffit de mettre tes regles dans le bon ordre, vu qu'elles sont executés dans leur ordre dans le htaccess, si une est plus précise que la seconde, la passer avant

exemple :

rewrite toto-(.+)-(.+).html
avant
rewrite toto-(.+).html
 
Nouveau WRInaute
kimengumi >> merci ;)

e-kiwi >> ça voudrait dire que je dois mettre ces regles ci-dessous :
Code:
RewriteRule (.*)*-p(.+)\.html$ 
$1/product_info.php?products_id=$2 [L] 

RewriteRule ^(.*)-c([^-]+)-p([^-]+)\.html$ 
$1/product_info.php?cPath=$2&products_id=$3 [L]

Dans cet ordre la :

Code:
RewriteRule ^(.*)-c([^-]+)-p([^-]+)\.html$ 
$1/product_info.php?cPath=$2&products_id=$3 [L]

RewriteRule (.*)*-p(.+)\.html$ 
$1/product_info.php?products_id=$2 [L]

ça veux dire que tu ne vois aucun probleme sur mes regles ?
 
WRInaute accro
autre hors sujet :

tu n'as pas regardé si il n y avait pas de module de URL Rewriting tout fait pour Oscommerce qui gererai toutes tes URL / Regles ?
 
Nouveau WRInaute
ah non jai pas regardé... mais d'apres ce quon ma dit et si on veux quelque chose de particulier (regle de nommage) il faut le faire à la mimine... ;)
 
WRInaute occasionnel
Pour que tu comprennes mieux la raison pour changer l'ordre des règles, voici ce qui se passe avec les deux règles suivantes (et plus généralement l'utilisation de .*) :

Code:
RewriteRule (.*)*-p(.+)\.html$ 
$1/product_info.php?products_id=$2 [L] 

RewriteRule ^(.*)-c([^-]+)-p([^-]+)\.html$ 
$1/product_info.php?cPath=$2&products_id=$3 [L]

Lorsque tu vas traiter une URL du type -http://www.example.com/produit-c12-p3.html

Cette url, tu veux la traiter avec la 2nde règle, mais en passant sur la règle 1, mod_rewrite va se satisfaire de la découpe suivante :
- produit-c12 qui est matché par (.*)*
- le signe - qui permet à mod_rewrite de repérer les deux éléments de ta règle
- p3 qui va matcher le p(.+)

Tu vas donc rediriger sur
-http://www.example.com/produit-c12/product_info.php?products_id=3
au lieu de
-http://www.example.com/produit/product_info.php?cPath=12&products_id=3


Il faut donc, soit changer l'ordre des règles, soit virer ce (.*)- au profit d'un ([^-]+)- (sauf si tes noms de produit peuvent contenir des tirets, effectivement, cette deuxième solution ne fonctionnera pas dans ce cas).

Dans le même ordre d'idée, regarde tes deux dernières règles :
Code:
RewriteRule (.*)*-m(.+)\.html$ $1/index.php?manufacturers_id=$2 [L]

RewriteRule (.*)designer-.*-d(.+)\.html$
$1/designers_info.php?designers_id=$2 [L]

D'après toi, laquelle va être prise en compte avec l'url suivante :
-http://www.example.com/produitdesigner-marcel-jeanjean-d3.html


Réponse : et bien ça sera la 1ere règle, et on sera redirigé sur :
-http://www.example.com/produitdesigner/index.php?manufacturers_id=arcel-jeanjean-d3

Faire donc TRES attention à l'utilisation des caractères trop génériques, comme le '.' (il faut souvent mieux mettre une selection de caractères possibles, a-là [-a-z0-9]) et très attention aussi à l'utilisation de l'étoile. Il vaut souvent mieux utiliser le signe '+' car on ne fait pas attention que quelquechose* ça peut matcher une chaine vide. pour tes identifiants, s'ils sont purement numérique, pense à indiquer \d+ au lieu de .+ (ça évitera qu'il match des chaines de caractères comme dans l'exemple précédent,).

Dernier point : (.*)* ne sert à rien, (.*) suffit largement (en fait je ne vois pas ce que la deuxième étoile pourrait apporter à la règle.
 
Nouveau WRInaute
Merci pour cette explication thierry !

Du coup je vais essayer de réécrire mes regles dans le sens que tu m'indique, et j'aimerais avoir ton avis pour savoir si je n'ai pas fait d'erreures :

Si je suis ce que tu me preconises voila comment je dois renommer ces regles (et jai aussi changer l'ordre...) :

Code:
RewriteRule ^(.*)-c(.+)-s(.+)-p(.+)\.html$ 
$1/index.php?cPath=$2&sort=$3&page=$4 [L]

RewriteRule ^([^-]+)-c([^-]+)-p([^-]+)\.html$ 
$1/product_info.php?cPath=$2&products_id=$3 [L] 

RewriteRule ^(.*)-p(.+)\.html$ 
$1/product_info.php?products_id=$2 [L]

Les deux dernieres :

Code:
RewriteRule ^(.*)-m(.+)\.html$ 
$1/index.php?manufacturers_id=$2 [L] 

RewriteRule ^(.*)designer-([-a-z0-9])*-d(.+)\.html$ 
$1/designers_info.php?designers_id=$2 [L]

Avec ces modifications, j'aurais bien quelque chose du type :
tabouret-p225.html
ou
tabouret-de-bar-c36_52-p281.html
ou encore :
tabouret-de-bar-c36_52-s2a-p281.html
et :
phillipe-starck-m36.html

Sans passer par des sous dossier ? en gros est ce que la jai des regles qui sont viables ?
 
WRInaute occasionnel
Elles me paraissent viables, mais évite le .+ là ou tu n'attends que des chiffres. Utilise simplement \d+ comme ça tu t'évites des surprises, avec les regexp faut jamais être trop large sinon y'a toujours une anguille qui surgit quand t'as pas les 20mn nécessaires à corriger le problème.

Donc tes c(.+) s(.+) m(.+) etc, faudrait les remplacer par des c(\d+) m(\d+) etc., ou si comme dans ton exemple (s2a) tu as des caractères aussi, mets au moins même chose que plus bas : c([^-]+) , m([^-]+) , etc.

Et je comprends pas pourquoi la 2eme règle utilise ([^-]+) là ou les autres règles utilisent (.*), faudrait mettre, aux trois : (.+)

Sinon, ça m'a l'air correct, j'espère ne pas avoir laissé passer une erreur, mais si tu as un pb WRI est là pour aider :)
 
Nouveau WRInaute
oki oki, alors je repasse mes regles :

Code:
RewriteRule ^(.*)-c(\d+)-s([^-]+)-p(\d+)\.html$ 
$1/index.php?cPath=$2&sort=$3&page=$4 [L] 

RewriteRule ^([^-]+)-c(\d+)-p(\d+)\.html$ 
$1/product_info.php?cPath=$2&products_id=$3 [L] 

RewriteRule ^(.*)-p(\d+)\.html$ 
$1/product_info.php?products_id=$2 [L] 

RewriteRule ^(.*)-m(\d+)\.html$ 
$1/index.php?manufacturers_id=$2 [L] 

RewriteRule ^(.*)designer-([-a-z0-9])*-d(\d+)\.html$ 
$1/designers_info.php?designers_id=$2 [L]

Et je comprends pas pourquoi la 3eme règle utilise ([^-]+) là ou les autres règles utilisent (.*), faudrait mettre, aux trois : (.+)
>> la jai pas compris de laquelle de mes regles tu parlais... ?

Sinon les modifs par rapport a ce que tu mas dit c bon la ? et l'ordre te parait bien ? Je te demande tout ca car je ne pourrais faire le test que ce soir :(

En tout cas merci beaucoup pr toutes tes reponses, ca m'aide bien a comprendre le truc...
 
WRInaute occasionnel
OUi, je viens de corriger, je parlais de la 2eme, tu commences avec ([^-])+ donc tu ne peux pas avoir de répertoire avec un '-' pour celle-là alors que tu peux pour les 2 autres.

Pour le reste, ça m'a l'air bien, sauf la dernière : ton $2 correspondant maintenant au contenu de la parenthèse que tu as ajoutée (le ([-a-z0-9])).

De manière générale, lorsque tu places une étoile après une parenthèse fermante, tu peux te dire que tu fais une erreur :) y'a rarement besoin de faire ça. Dans le cas qui nous concerne, par exemple, tu devrais plutot l'écrire comme ça :
Code:
RewriteRule ^(.*)designer-[-a-z0-9]+-d(\d+)\.html$
$1/designers_info.php?designers_id=$2 [L]

(mais attention à ne jamais indiquer de nom de designer qui contienne un autre caractère (accents perdus, apostrophe, arobase, etc.)
 
Nouveau WRInaute
Ah super, alors en fait ya juste ma derniere regle qui posait probleme dans ce cas la...

Par contre lorsque tu dis :
donc tu ne peux pas avoir de répertoire avec un '-'

>> tu as bien compris que je ne voulais pas de repertoire avant ? je veux juste la page avec lextension .HTML... parceque du coup je me demande si les regles que tu m as corrigé comprenne un repertoire ou pas ?...
 
Nouveau WRInaute
Ah merdasse !! :roll:

du coup ca ne peut pas être simplement tabouret-de-bar-c22-p255.html mais forcement repertoire/tabouret-de-bar-c22-p255.html ...

Ca explique pourquoi rien ne fonctionne ché moi malgré le nouveau fichier HTACCESS.

Je vais encore abuser de ton aide precieuse mais il faut absolument que je reussisse à renommer ces pages produits...

Ci-dessous, je repars sur mon fichier de base ou le renommage des catégorie fonctionnait (tu as le resultat souhaité juste au dessus de chaque regle):

Code:
luminaire-c22.html ou sous catégorie tabouret-de-bar-c36_51.html
RewriteRule (.*)*-c(.+)\.html$ $1/index.php?cPath=$2 [L]

tabouret-p225.html 
RewriteRule (.*)*-p(.+)\.html$ $1/product_info.php?products_id=$2 [L]

tabouret-de-bar-c36_52-p281.html
RewriteRule (.*)*-c(.+)-p(.+)\.html$ $1/product_info.php?cPath=$2&products_id=$3 [L]

tabouret-de-bar-c36_52-s2a-p281.html
RewriteRule (.*)*-c(.+)-s(.+)-p(.+)\.html$ $1/index.php?cPath=$2&sort=$3&page=$4 [L]

phillipe-starck-m36.html
RewriteRule (.*)*-m(.+)\.html$ $1/index.php?manufacturers_id=$2 [L]

designer-buclon-pascal-d67.html
RewriteRule (.*)designer-.*-d(.+)\.html$ $1/designers_info.php?designers_id=$2 [L]

Bon je sais ya plein de trucs qui te paraissent incohérent du coup, vu toutes les modifs quon a faite avant, mais la du coup on peut repartir sur ça pour essayer de zapper ces "repertoire virtuelles" puisque je fais le lien uniquement vers une page HTML.

Du coup le $1 je le zap et le place à la palce du $2 ? Si tu pouvais m'aider pour réécrire correctement une des regles ci-dessus, je me baserais sur elle pour faire les autres...

Merci encore pour ton temps !


Voila ce qu'à fait le developpeur pour le rewriting (explication qui peuvent nous aider pour les regles) :

Code:
pour t'aider dans la réalisation de tes regles j'ai mis un système en ligne qui
te permet d'afficher le lien pour chaque appel de la fonction tep_href_link(),
ainsi tu pourra visualiser les urls différentes pour tous les liens de la page.
ca va déformer la mise en page, mais ne t'inquite pas il y as que toi qui le
verra

Pour cela c'est très simple : tu ouvre la page que tu souhaite voir, ensuite tu
rajoute à la fin de l'url la variable suivante :
&testsb=1 comme ceci :
index.php?cPath=36&testsb=1
index.php?cPath=36_49&testsb=1
product_info.php?cPath=36_49&products_id=394&testsb=1
cela va généré une ligne comme cela :

<-- url Test -->
index.php?cPath=36
<-- Fin de url test -->

chaque fois que la fonction tep_href_link() est appelé
ainsi tu pourra voir quel sont les urls appelées, leurs syntaxe et ou elles sont
appelées.

sinon tu trouvera ci-dessous les regex que j'ai utilisé pour réécrire les urls
peut être cela va t'aider pour les reconstituées

POUR LA PAGE : index.php

$n = ereg('[&\?/-]?cPath[=/]([0-9_]+)', $parameters, $r);
$s =
ereg('[&\?/-]?cPath[=/]([0-9_]+)[&\?/-]?sort[=/]([0-9a-zA-Z]+)[&\?/-]?page[=/]([0-9]+)',
$parameters, $t);
$k =
ereg('[&\?/-]?cPath[=/]([0-9_]+)[&\?/-]?page[=/]([0-9]+)[&\?/-]?sort[=/]([0-9a-zA-Z]+)',
$parameters, $l);
$e =
ereg('[&\?/-]?manufacturers_id[=/]([0-9_]+)[&\?/-]?page[=/]([0-9]+)[&\?/-]?sort[=/]([0-9a-zA-Z]+)',
$parameters, $f);
$g =
ereg('[&\?/-]?manufacturers_id[=/]([0-9_]+)[&\?/-]?sort[=/]([0-9a-zA-Z]+)[&\?/-]?page[=/]([0-9]+)',
$parameters, $h);
$y =
ereg('[&\?/-]?designers_id[=/]([0-9_]+)[&\?/-]?sort[=/]([0-9a-zA-Z]+)[&\?/-]?page[=/]([0-9]+)',
$parameters, $x);
$w =
ereg('[&\?/-]?designers_id[=/]([0-9_]+)[&\?/-]?page[=/]([0-9]+)[&\?/-]?sort[=/]([0-9a-zA-Z]+)',
$parameters, $v);

POUR LA PAGE : product_info.php

elseif($page == 'product_info.php') {             
   $l = ereg('[&\?/]?products_id[=/]([0-9]+)', $parameters, $m); 
   $n = ereg('[&\?/]?cPath[=/]([0-9_]+)', $parameters, $r);                         
   $select_prd = $m[1];
   $select_cat = $r[1];
   $the_product_info_query = tep_db_query("select pd.language_id, p.products_id,
pd.products_name, p.products_model from " . TABLE_PRODUCTS . " p, " .
TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_id = '" . $select_prd . "'
and pd.products_id = '" . $select_prd . "'" . " and pd.language_id ='1'");
   $the_product_info = tep_db_fetch_array($the_product_info_query);
   $the_product_info['products_name'] =
strtr($the_product_info['products_name'],$tofind,$replac);
   $the_product_info['products_name'] =
strtolower($the_product_info['products_name']);
   $the_product_info['products_name'] = ereg_replace("[^a-zA-Z0-9]", "-",
$the_product_info['products_name']);          
   $parameters =
ereg_replace("[&\?/]?cPath[=/]([0-9_]+)[&\?/]?products_id[=/][0-9]+[&/]?", "",
$parameters); 
   while (strstr($the_product_info['products_name'], '--'))
$the_product_info['products_name'] = str_replace('--', '-',
$the_product_info['products_name']);
   $the_product_info['products_name'] = ereg_replace("-$", "",
$the_product_info['products_name']);
   if ($n && $l) {
   $off =1;
    $page = str_replace('product_info.php', $the_product_info['products_name'].
'-c'. $select_cat  . '-p' . $select_prd, $page);
   }
   else {
   $off =0;
   } 
   if ($l && $off == 0) { 
    $page = str_replace('product_info.php', $the_product_info['products_name'] .
'-p' . $select_prd, $page);
   }
    $link = $page . '.html';
  }
 
WRInaute occasionnel
J'ai pas beaucoup de temps avant ce soir, mais en attendant je me permet tout me même de m'interroger :

le coup du répertoire avant le index.php, c'est toi qui te l'impose, c'est pas obligatoire.
Mais comme depuis le début tu prends dans tes exemples le $1 (luminaire, tabouret-de-bar, etc.) pour en faire un répertoire je pensais que c'était ce que tu voulais faire.

Ce n'est pas obligatoire. Pour autant, le $1 tu n'en as pas besoin (faut alors juste virer les trois caractères '$1/' de la règle d'arrivée).

Tu n'es pas OBLIGE d'avoir des répertoires, c'est juste que depuis le début tu présentes tes exemples comme s'il devait y en avoir, qui portent le nom des catégories :)
 
Nouveau WRInaute
ah d'accord, donc si je garde les même regle en enlevant le $1/ ca devrait être bon ?

Bon alors voila les regles sans rep cette fois ci :

Regarde j'ai changé la plus part des (\d+) par ([0-9_]+) car en fait ca peut etre soit des chiffre cPath=22 soi chiffre et underscore cPath=22_32 du coup ma regle est plus adaptée non ?

Voila le code que j'ai réadapté ci-dessous, pour chacune des regle, je te met l'URL associée et le resultat souhaité, dit moi si chui bon ou si chui completement à l'ouest ! :) (même au niveau de l'ordre des regles STP)

URL Actuelle :
index.php?cPath=22_27&sort=2a&page=2
URL Souhaitée :
mot-cle-c22_27-s2a-p2.html
Règle :
RewriteRule ^(.*)-c([0-9_]+)-s([^-]+)-p(\d+)\.html$ index.php?cPath=$1&sort=$2&page=$3 [L]

URL Actuelle :
product_info.php?cPath=36_51&products_id=386
URL Souhaitée :
mot-cle-c36_51-p386.html
Règle :
RewriteRule ^(.*)-c([0-9_]+)-p(\d+)\.html$ product_info.php?cPath=$1&products_id=$2 [L]

URL Actuelle :
index.php?cPath=22_53
OU
index.php?cPath=22
URL Souhaitée :
mot-cle-c22.html
OU
mot-cle-c22_53.html
Règle :
RewriteRule ^(.*)-c([0-9_]+)\.html$ index.php?cPath=$1 [L]

URL Actuelle :
product_info.php?products_id=229
URL Souhaitée :
mot-cle-p229.html
Règle :
RewriteRule ^(.*)-p(\d+)\.html$ product_info.php?products_id=$1 [L]

URL Actuelle :
index.php?manufacturers_id=15
URL Souhaitée :
mot-cle-m15.html
Règle :
RewriteRule ^(.*)-m(\d+)\.html$ index.php?manufacturers_id=$1 [L]

URL Actuelle :
designers_info.php?designers_id=67
URL Souhaitée :
designer-mot-cle-d67.html
Règle :
RewriteRule ^(.*)designer-([-a-z0-9])*-d(\d+)\.html$ designers_info.php?designers_id=$1 [L]

Voila cette fois je crois que j'ai tout mis et surtout je crois que l'on s'approche du but !

Dis moi si tout te semble correct par rapport aux url souhaitées. et si il n'y a pas de fautes dans l'ecriture de ces regles qui pourraient empecher la bon rewritting.

Je t'ai deja remercier non ?? je le fait à nouveau ;)

Alex.
 
WRInaute occasionnel
rigolman a dit:
Regarde j'ai changé la plus part des (\d+) par ([0-9_]+) car en fait ca peut etre soit des chiffre cPath=22 soi chiffre et underscore cPath=22_32 du coup ma regle est plus adaptée non ?

Oui, excellent.


Pour tes règles, il reste une erreur :
comme tu mets toujours au début de ta règle une parenthèse, ça te créé un $1 que tu ne comptes pas. En fait, les $1, $2, $3 que tu utilises sont, en vrai, $2, $3, $4.

remplace les ^(.*)- au début des règles par ^.*-
Ca sera pareil sans créer de $1 inutile

Et pour la dernière règle, vire carrément le (.*) complet, tu n'as jamais rien avant 'designer', donc la règle doit être :
Code:
RewriteRule ^designer-([-a-z0-9])*-d(\d+)\.html$ designers_info.php?designers_id=$1 [L]

Voila, ça devrait être tout :)

Bonne chance (je matterais WRI plus tard ce soir voir si tu as re-besoin d'aide)
 
Nouveau WRInaute
ah merci !

dc au final voila ce que ça donne :

Code:
RewriteRule ^.*-c([0-9_]+)-s([^-]+)-p(\d+)\.html$ index.php?cPath=$1&sort=$2&page=$3 [L] 

RewriteRule ^.*-c([0-9_]+)-p(\d+)\.html$ product_info.php?cPath=$1&products_id=$2 [L] 

RewriteRule ^.*-c([0-9_]+)\.html$ index.php?cPath=$1 [L] 

RewriteRule ^.*-p(\d+)\.html$ product_info.php?products_id=$1 [L] 

RewriteRule ^.*-m(\d+)\.html$ index.php?manufacturers_id=$1 [L] 

RewriteRule ^designer-([-a-z0-9])*-d(\d+)\.html$ designers_info.php?designers_id=$1 [L]

Voila, bon ben je teste ca tout à l'heure en esperant que ca fonctionne ;)

Je te tiens au courant, merci pour ton aide aujourd'hui !

Alex.
 
WRInaute occasionnel
La dernière règle ne fonctionnera pas, n'oublie pas que chaque fois que tu mets des parenthèses, ça crée un $1, puis $2, etc.

donc c'est pas
Code:
RewriteRule ^designer-([-a-z0-9])*-d(\d+)\.html$ designers_info.php?designers_id=$1 [L]

mais
Code:
RewriteRule ^designer-[-a-z0-9]*-d(\d+)\.html$ designers_info.php?designers_id=$1 [L]

( et soit dit en passant, si tu avais voulu récupérer le nom du designer, c'était pas ([-a-z0-9])* mais ([-a-z0-9]*)
:)

Voila, bons tests à toi :)
 
Nouveau WRInaute
Des newssss !

La dernière règle ne fonctionnera pas, n'oublie pas que chaque fois que tu mets des parenthèses, ça crée un $1, puis $2, etc.
>> ah oui... maintenant je le saurais ;) merci pr linfo !

Alors voila le resultats de mes tests :

Code:
mobilier-c36.html => OK
tabourets-bas-c36_52.html => OK

tabouret-charles-ghost-bas-c36_52-p281.html => Produit non
trouvé !
>> tu vois pourquoi cette regle ne passe pas ?

soldes-siege-sacco-p394.html => OK
designers.html => OK

designer-buclon-pascal-d67.html => ERREUR (retour index)
>> la l'erreur vient comme tu las dit dans ton dernier message de la regle qui devrait être comme suit :
RewriteRule ^designer-[-a-z0-9]*-d(\d+)\.html$ designers_info.php?designers_id=$1 [L] 


meilleures-ventes.html => OK
notre-societe.html => OK
contactez-nous.html => OK
lampes-de-bureau-c22_28-s2a-p2.html => OK

Donc la plus part des URL passent nikel (grace à toi ;))), sauf
tabouret-charles-ghost-bas-c36_52-p281.html

Pourtant la regle à l'air bonne puisque la page est bien trouvé mais les variables ont l'air de mal passer (produit non trouvé).

une idée ?

Alex content !
 
WRInaute occasionnel
Là, comme ça, tout de suite, je vois pas.
Le plus simple c'est d'utiliser le truc de ton développeur pour voir ce qui est appelé réellement.
remplace, sur la ligne incriminée, le [L] par [L,QSA] (pour ajouter les arguments passés dans l'url initiale) et essaye ça :
-http://www.oralto.com/tabouret-charles-ghost-bas-c36_52-p281.html?testsb=1

Tu verras bien quelle URL est appelée et ça nous mettras sur la piste (je l'aurais bien essayé moi-même, mais ça ne peut pas marcher avant que tu mettes le QSA)
 
Nouveau WRInaute
C bon le probleme a été reglé, cetai un bug du coté developpeur !

Tout fonctionne parfaitement maintenant et c en grande partie grace à toi, je tenais à te remercier !

je vais enfin pouvoir commencer un referencement efficace !

encore un grand merci à toi :D
Alex.
 
Discussions similaires
Haut