Static6000 Posté 20 Novembre 2005 Posté 20 Novembre 2005 Bonjour, Je voudrais transformer une url de ce type : recherche.php?pays=france®ion=ile-de-france&departement=paris En recherche-france-ile-de-france-paris.htm Comment faire ceci car je ne connais rien à l'url rewriting ! PS : je voudrais aussi une url de ce type : recherche/france/ile-de-france/paris.htm Merci d'avance
Compte supprimé Posté 21 Novembre 2005 Posté 21 Novembre 2005 RewriteEngine onRewriteRule ^recherche/(.+)/(.+)/(.+)\.htm$ recherche.php?pays=$1®ion=$2&departement=$3 [L] est préférable (ta deuxième version) car MSN n'aime pas trop les url avec multiples tirets... De plus tu n'aura pas de problème avec les tirets dans les variables pays, region, et departement.
Dan Posté 21 Novembre 2005 Posté 21 Novembre 2005 Ne pas oublier que dans l'exemple donné par Jeroen, on crée des "répertoires virtuels"... On fait croire au navigateur que la page paris.htm se trouve dans le répertoire recherche/france/ile-de-france/ alors qu'elle n'y est pas bien évidemment. Donc tous les liens relatifs seront résolus à partir de ce répertoire. C'est à dire qu'il faudra n'utiliser que des liens absolus, ou alors utiliser la balise <base href="..."> dans le document recherche.php Sinon, plus d'images, plus de CSS, une page incomplète. Dan
Static6000 Posté 21 Novembre 2005 Auteur Posté 21 Novembre 2005 Merci Dan et jeroen pour votre aide ! Alors Dan peux tu être plus précis ? car je ne m'y connais pas trop que veux tu dire par "liens absolus" ou par "<base href="...">" Car j'y avais pas pensé au css et aux images ... Je veux bien utiliser la solution de jeroen mais j'aimerais avoir plus d'informations sur ce que à dit Dan Merci d'avance
Static6000 Posté 23 Novembre 2005 Auteur Posté 23 Novembre 2005 Up en éspérant que Dan me réponde ( ou quelqu'un d'autre )
Dan Posté 23 Novembre 2005 Posté 23 Novembre 2005 J'avais zappé ta demande Un lien absolu est un lien sous la forme "http://domaine.tld/rep/fichier" ou encore un lien interne faisant référence à un fichier serveur au départ de la racine, par exemple "/home/login/www/rep/fichier" (commençant par / ) Sinon, l'utilisation de <base href="..."> est plus simple, car il suffit de donner l'URL réelle du fichier après réécriture, c'est à dire dans ton cas : <base href="http://domaine.tld/recherche.php"> A mettre dans l'entête , entre <head> et </head> Cela donne le chemin à partir duquel il faut résoudre les liens relatifs. Dan
Static6000 Posté 2 Décembre 2005 Auteur Posté 2 Décembre 2005 (modifié) Bonjour, Merci Dan j'ai pu testé et ca marche très bien. Mais il y a un problème Quand je mes dans mon .htaccess RewriteRule ^recherche/(.+)\.htm$ recherche.php?pays=$1 [L]RewriteRule ^recherche/(.+)/(.+)\.htm$ recherche.php?pays=$1®ion=$2 [L] et que j'arrive sur la page recherche et que je clique sur France alors j'ai bien une adresse du type : http://mon-site.com/recherche/france.htm et quand je clique sur une des régions de france par exemple ile-de-france et ba cela ne marche pas ! il me renvoie vers http://mon-site.com/recherche.php%3E Et il me dit que le document n'a pas été trouvé sur le serveur Et si j'enleve cette ligne de mon .htaccess RewriteRule ^recherche/(.+)\.htm$ recherche.php?pays=$1 [L] Alors la ca marche ! j'ai mis dans mon head : <base href="http://mon-site.com/styles.css"><base href="http://mon-site.com/recherche.php"> Jespere que quelqu'un va m'aider Merci d'avance PS : dans mon code source je pointe bien vers des liens du type : http://mon-site.com/france/ile-de-france j'espere avoir été clair Modifié 2 Décembre 2005 par Static6000
Dan Posté 2 Décembre 2005 Posté 2 Décembre 2005 Il ne faut pas mettre la ligne: <base href="http://mon-site.com/styles.css"> Parce que ton fichier est recherche.php et non style.css, non ? Et à mon avis, il faut inverser tes deux règles parce que (.+) va aussi matcher le / de tes régions. Donc il faut mettre cette règle en premier : RewriteRule ^recherche/(.+)/(.+)\.htm$ recherche.php?pays=$1®ion=$2 [L]RewriteRule ^recherche/(.+)\.htm$ recherche.php?pays=$1 [L]
Static6000 Posté 2 Décembre 2005 Auteur Posté 2 Décembre 2005 (modifié) Merci Dan ca marche super Tu mérites ton status de webmaster Modifié 2 Décembre 2005 par Static6000
Static6000 Posté 2 Décembre 2005 Auteur Posté 2 Décembre 2005 Une derniere quéstion Comme je retrouve plus l'article sur l'url rewriting sur webmaster-hub je voudrais savoir comment faire pour réécrir : page.php en page.htm Merci d'avance
Dan Posté 2 Décembre 2005 Posté 2 Décembre 2005 Salut, Et pourtant l'article est facile à trouver ! Il se trouve là : http://www.webmaster-hub.com/publication/article5.html L'URL n'a pas changé depuis 2 ans Dan PS: tu es sûr que tu veux convertir page.php en page.htm ? Si oui, voici la règle : RewriteRule (.+)\.php $1.htm [L]
Static6000 Posté 2 Décembre 2005 Auteur Posté 2 Décembre 2005 ton code ne marche pas Dan ! C'est à dire quand je tape accueil.php il me dit introuvale et accueil.htm la même chose
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant