Jump to content
WebFrance
  • Rejoignez WebFrance

    Inscrivez vous aujourd'hui et recevez le Guide gratuit du e-Business

     

URL rewriting


spacemarmotte
 Share

Recommended Posts

Bonjour à tous,

je galère avec l'url rewriting...

j'ai des liens depuis mes pages qui donnent: ht...occasions-peugeot-207-abc1234 et que je veux faire pointer sur ht... details.php?id=abc1234

ex. www.monsite.fr/occasions-peugeot-207-abc1234

pour www.monsite.fr/details.php?id=abc1234

j'ai créé mon fichier htaccess comme ça:

RewriteEngine On

RewriteBase /

RewriteRule ^occasions-([a-z]*)-([a-z0-9]*)-([a-z0-9]*)\.php$ /details.php?id=$3 [L]

la 1ère série ne contient que des lettres (mises en minuscules en php)

la 2ème contient des lettres (aussi en minuscules) et/ou des chiffres

la 3ème, une série de 3 lettres 3 chiffres ( ex: abc1234) qui correspondent à la référence que je dois utiliser pour appeler la bonne page !

et... il n'y a rien a faire, j'ai beau trituré le htaccess dans tous les sens... ça veut pas !!!

est-ce que vous voyez une erreur qque part dans mon htaccess ?

ça fait des heures que je suis là dessus...

Merci pour vos lumières .

Eric

Link to comment
Share on other sites
Partagez cette page :

>> Nouveau : Découvrez la marketplace d'Achat / Vente de Sites !

Euh non, il ne doit pas obligatoirement avoir toutes les variables à droite. (même si dans un sens ça serait plus logique).

Sinon je ne sais pas si ton exemple est bon ?

> www.monsite.fr/occasions-peugeot-207-abc1234

hors dans ton htaccess tu mets

> occasions-([a-z]*)-([a-z0-9]*)-([a-z0-9]*)\.php

c'est à dire avec ".php" à la fin. Donc déjà vire soit le .php dans htaccess soit l'ajouter à ton rewrite.

Sinon ne met pas "*" mais "+"

* = quelque chose ou rien

+ = forcement quelque chose (ce qui est ton cas)

Link to comment
Share on other sites
Partagez cette page :

Merci pour votre aide...

Avoir le même nombre de variables des 2 côtés se comprend par exemple dans les blog ou les sites d'articles (rubrique5, page3, art15).

sur mon site, seule la référence (abc1234) est indispensable pour afficher la bonne page.

Sinon, MonGuide ;-) bien vu pour l'extension.php ... j'ai suivi un tuto sans me rendre compte que je ne l'ai pas dans mes liens... c'est viré !

RewriteEngine On

RewriteBase /

RewriteRule ^occasions-([a-z]+)-([a-z0-9]+)-([a-z0-9]+) /details.php?id=$3 [L]

mais ça ne fonctionne toujours pas !!

le fait de ne pas être à la racine du site peut-elle poser pb ??

Link to comment
Share on other sites
Partagez cette page :

Oui si ce n'est pas à la racine ça joue, tu ne l'avais pas précisé dans ton premier message :)

Si tu es dans un dossier, l'idéal (pour la perf) c'est déjà de mettre ton htaccess dans le dossier où sera appliqué ton rewrite (ça évite aux autres dossiers de devoir analyser ton htaccess pour rien).

Ensuite tu met :

RewriteEngine on

RewriteBase /tonDossier/

RewriteRule ^occasions-([a-z]+)-([a-z0-9]+)-([a-z0-9]+)$ /tonDossier/details.php?id=$3 [L]

Link to comment
Share on other sites
Partagez cette page :

OK, mon htaccess est bien dans le dossier...

On m'a imposé de travailler dans un sous-sous-sous dossier (en l''occurence :www.monsite.fr/occasions/marques/modeles)

mais je n'ai pas dit mon dernier mot... je veux la racine !! (et je l'aurai ;-))

ça marche nickel avec l'arbo complète, un grand merci !

RewriteBase /occasions/marques/modeles/

RewriteRule ^occasions-([a-z]+)-([a-z0-9]+)-([a-z0-9]+)$ /occasions/marques/modeles/details.php?id=$3 [L]

bon, maintenant il faut que je gère les modèles comportant un espace (avec megane ou golf, ça fonctionne nickel, avec vel satis, ... l'espace me fout dedans )

EDIT: je me rends compte que j'ai des modèles avec des - aussi !!

il faut que je l'enlève en php et que le remplace par un autre caractere... est ce que + va être prise en compte par ([a-z0-9]+) ?

Edited by spacemarmotte
Link to comment
Share on other sites
Partagez cette page :

Grrr ... je parviens à mettre en minuscules mais pas à remplacer l'espace par un + (je vais mettre + plutôt que - pour éviter les confusions)

while ($data = mysql_fetch_array($resultats)) {

                    $Marque[ ] = $data["marque"];

                    $Marquem[ ] = strtolower($data["marque"]);

                                $Modele[] = $data["modele"];

                    $Modelem[ ] = strtolower($data["modele"]); // en minuscules

                    $Modelem[ ] = str_replace(' ','+',$Modelem[$i]); // espace devient +

                    $Version[ ] = $data["finition"];

                    $energie[ ] = $data["moteur"];

                    $MEC1[ ] =  $data["mois"];

                    $MEC2[ ] = $data["annee"];

                    $klm[ ] = $data["km"];

                    $options[ ] = substr($data["option_select"], 0, 65);

                                $prix[ ] = $data["prix"];

                    $prix2[ ] = number_format($data["prix"], 0, ',', ' ');

                    $IDVO[ ] = $data["reference"];

                    $IDVOm[ ] = strtolower($data["reference"]);        }  

               for ($i=0; $i<$limit ;  $i++)

et ma regex comme ça : ([a-z0-9+]+)

Mode [bOULET] ON aujourd'hui !!!

Edited by spacemarmotte
Link to comment
Share on other sites
Partagez cette page :

c'est ça ton code ?

$Modelem[ ] = strtolower($data["modele"]); // en minuscules

$Modelem[ ] = str_replace(' ','+',$Modelem[$i]); // espace devient +

le $i ?

fait en une ligne non ?

$Modelem[] = str_replace(' ','+',strtolower($data["modele"]));

pour ton rewrite, ne met pas "+" mais "\+" (car + est un caractère spécial)

Link to comment
Share on other sites
Partagez cette page :

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share



© WebFrance - Contact - Annonceurs - Conditions générales - Legal

×
×
  • Create New...