Lentreprenaute Posté 18 Octobre 2004 Posté 18 Octobre 2004 Bonjour, j'aimerai faire un url rewriting selon l'exemple ci-dessous qui fonctionne pour une variable: index.php?cat=XX me renvoie nom_rubrique-x.html mais je veux pour plusieurs variables : index.php?cat=2&sort=nom&by=DESC&p=1 pouvez vous m'aider à ressortir ce resultat. nom_rubrique-2-nom-desc-2.html ci dessous les codes d'origines qui provienne de l'annuaire netref htaccess RewriteEngine onRewriteRule ^([^-.]+)-([0-9]+)\.html$ index.php?cat=$2 [QSA,L] code fonction php ... function url_rewrite($cat_nom,$cat_id,$p){ global $url_rewriting; if (!$url_rewriting) return "?cat=$cat_id";// mod Non URL Rewriting // si URL Rewriting $cat_nom=trans_nom_fichier(substr($cat_nom,0,30)); $cat_nom=urlencode($cat_nom); $cat_nom=str_replace("+-/.", "_\0\0\0",$cat_nom); return $cat_nom."-".$cat_id.".html"; } ... appel de la fonction ....$url_cat=url_rewrite($nom,$cat,0);// lit l"URL Rewriting echo "<a class='lien_2' href='$url_cat'>...
Guest azeitona Posté 18 Octobre 2004 Posté 18 Octobre 2004 je pense que c'est ton htaccess qui est pas bon
Lentreprenaute Posté 19 Octobre 2004 Auteur Posté 19 Octobre 2004 re moi, sinon je voudrais reecrire toutes mes pages de ce type : p_new.php?p=x p_parten.php?p=x p_top.php?p=x pour le moment j'ai ca dans le htaccess, seul pb c'est que ca prend la main sur tout, comment je peux ecrire ca pour que cela me reecrive toutes mes pages ci-dessus. a partir du moment ou j'ai une structure identique nompage.php?var=1, je ne sais pas comment faire pour reecrire les pages. un grand merci a celui qui me depatouillera RewriteRule ^([^-.]+)-([0-9]+)\.html$ p_new.php?p=$2 [QSA,L]
Dan Posté 19 Octobre 2004 Posté 19 Octobre 2004 Lentreprenaute, Je pense que tu poses le problème à l'envers et que tu veux réécrire nom_rubrique-2-nom-desc-1.html en index.php?cat=2&sort=nom&by=DESC&p=1 et non l'inverse... non ? En admettant que "nom_rubrique" soit une constante dans tes URLs au format html, la règle serait alors: RewriteRule nom_rubrique-([0-9]+)-([a-z]+)-([a-z]+)-([0-9]+)\.html index.php?cat=$1&sort=$2&by=$3&p=$4 [NC,L] Dan
Dan Posté 19 Octobre 2004 Posté 19 Octobre 2004 Et pour ton autre problème: p_new.php?p=x p_parten.php?p=x p_top.php?p=x RewriteRule p_(new|parten|top)-([0-9]+)\.html p_$1.php?p=$2 réécrirait p_parten-12.html en p_parten.php?p=12 ... c'est ce que tu veux ? Dan
Lentreprenaute Posté 19 Octobre 2004 Auteur Posté 19 Octobre 2004 (modifié) bonjour Dan je veux transformer mes url p_new.php?var=x p_parten.php?var=x p_best.php?var=x en new-x.html parten-x.html best-x.html j'utilise cette ligne* pour transformer , mon probleme est que je n'arrive pas a transformer les autres pages (parten, best,..) et plus generalement toute les pages qui ont une structure identique. car j'a itoujour cette ligne qui prend le dessus. * RewriteRule ^([^-.]+)-([0-9]+)\.html$ p_new.php?p=$2 [QSA,L] Modifié 19 Octobre 2004 par Lentreprenaute
Dan Posté 19 Octobre 2004 Posté 19 Octobre 2004 Supprimes cette ligne et ajoutes la suivante: RewriteRule ([a-z]+)-([0-9a-z]+)\.html p_$1\.php?var=$2 [L] Réécrira toute url commençant par un ensemble(1) de lettres, suivi d'un tiret, suivi d'un ensemble(2) de lettres ou chiffres en p_ensemble1.php?var=ensemble2
xpatval Posté 21 Octobre 2004 Posté 21 Octobre 2004 (modifié) Heu, Dan, je crois que la demande est inverse, à savoir recopier l'url http://www.monsiteamoiquejai.php?param=xx EN http://www.monsiteamoiquejai.html Du moins, c'est ce que j'ai cru comprendre... Cela étant, la méthode de transformation m'intéresse, puisque je souhaite aussi faire cela. xpatval ps: Quoique je me pose aussi peut-être le problème à l'envers. Le but étant de faire apparaitre sur la barre d'adresse l'url en .html, tout en conservant le processus de passage de paramètres...(www.toto.php?param=xxx). je ma bien fait compris ? Modifié 21 Octobre 2004 par xpatval
Dan Posté 22 Octobre 2004 Posté 22 Octobre 2004 ps: Quoique je me pose aussi peut-être le problème à l'envers.Le but étant de faire apparaitre sur la barre d'adresse l'url en .html, tout en conservant le processus de passage de paramètres...(www.toto.php?param=xxx). je ma bien fait compris ? Oui, tu poses le problème à l'envers.. j'ai d'ailleurs répondu en ce sens dans ton autre post Dan
Lentreprenaute Posté 27 Octobre 2004 Auteur Posté 27 Octobre 2004 Dan merci pour tes reponses, j'ai pas reussi mon coup, mais je crois que cela vient d'autres erreurs, j'y reviendrai surement merci
Guest azeitona Posté 27 Octobre 2004 Posté 27 Octobre 2004 (modifié) hummm, est-tu sur que le htaccess marche sur ton serveur ? as-tu testé avant tout de faire une redirection pour verifier si ca marche bien ? Modifié 27 Octobre 2004 par azeitona
Lentreprenaute Posté 29 Octobre 2004 Auteur Posté 29 Octobre 2004 re bonjour, bon je progresse a petit pas et j'ai un pb avec r=301! RewriteRule ^([^-.]+)-([0-9]+)\.htm$ index.php?site=$2 [QSA,L] reecrit : index.php?site=XX en nomvariable*-XX.htm nomvariable n'est pas fixe, il peut prendre des valeurs différentes exemple : (nom_rubrique, page, page_rubrique, nom_cat,...) la ou ca coince : je n'arrive pas a rediriger : si je tente R=301 pour envoyer les anciennes pages indexées (index.php?site=XX)par Google sur les nouvelles reecrites (en nomvariable-XX.htm) avec le code suivant RewriteRule ^([^-.]+)-([0-9]+)\.htm$ index.php?site=$2 [NC,QSA,R=301,L] cela me retourne cette erreur, lorsque j'appelle une page nomvariable-XX.htm et ne parlons pas de la redirection d'une page "index.php?site=XX", il ne se passe rien /home/web/messites/monsite/index.php was not found on this server. cela revient a m'afficher le repertoire ou est stocké mon site sur mon serveur. une idée, Florent ci-dessous mon htaccess complet php_flag register_globals on RewriteEngine on RewriteRule ^([^-.]+)-([0-9]+)\.htm$ index.php?site=$2 [QSA,L]
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant