Version complète: sur le forum Webmaster Hub : [url_rewriting] Simplifier l'url de mon site
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
cecileB2K
Bonjour,

j'ai un site dont j'aimerais simplifier l'url ... la raccourcir en somme.
très simple il me suffit de modifier l'arborescence.

le probleme c'est qu'il va exitser durant une longue période de mauvaises url (Google, sites lambda ayant mis un lien quelconques etc)

exemple actuellemnt l'url c'est:
http://www.mon_site.com/blabla/dossier/index.php
et je souhaiterais que les liens ressemble a cela:
http://www.mon_site.com/index.php

est-ce que l'url_rewriting permet cela et surtout comment ?

Merci de votre aide
Dan
Bonjour cecileB2K,

C'est simple si tu veux faire remonter toute l'arborescence du répertoire /blabla/dossier vers la racine.
Pour cela il faut que tes pages soient organisées selon la même arborescence (et portent le même nom)

Il suffit d'une ligne dans le fichier .htaccess mis dans le répertoire à la racine du site:
CODE
RedirectPermanent /blabla/dossier/   http://www.tondomaine.com/
cecileB2K
C'est d'une rare simplciité et efficacité !

Merci smile.gif
cecileB2K
est-il possible de le faire malgré tout en url rewriting, si oui comment en utilisant l'exemple + haut ?

merci
Anonymus
Bonjour,

L'exemple donné plus haut par Dan est typiquement de l'url_rewriting.
Tu peux lire, à ce sujet, les articles suivants :
- http://www.webmaster-hub.com/publication/article5.html
- http://www.webmaster-hub.com/publication/article15.html

Ce sont des articles qui expliquent ce qu'est l'url rewriting.

Pour ce qui est des pages présentent dans Google, il leur faudra un certain temps pour que ces pages soient désindexées et réindexées, mais tu n'y perdra quasiment rien (normalement).

Anonymus.
cecileB2K
Ce sont 2 (très bons) articles que j'ai déjà lu, et je n'ai malheureusement pas trouvé la réponse à ma question, mais je reconnais que je ne suis pas très douée wacko.gif

Je m'explique:

J'aimerais pouvoir simplifier ce type d'url (ou x="id de l'article") de deux façons

Premier exemple:

http://www.monsite.org/public/sections/article.php?storyid=x
en
http://www.monsite.org/public/article-x-titre_article.html

Ou bien (je ne me suis pas décidée ! tongue.gif )

Deuxième exemple:

http://www.monsite.org/public/sections/article.php?storyid=x
en
http://www.monsite.org/news/article-x-titre_article.html

Ce qui est en gras c'est ce que j'ai réussi à faire, grâce à cette règle: RewriteRule ^article-([0-9]+)-([^_]+)\.html$ article\.php?storyid=$1 [L] ... mais je ne parviens pas a modifier mes urls comme les deux exemples cités plus haut.

Merci de votre aide

CelineB2K
cecileB2K
J'ai fini par arriver a régle mon probleme dans le premier exemple, il suffisait que je remonte mon .htaccess dans l'arborescence et que je modifie ma regle initiale:

RewriteRule ^article-([0-9]+)-([^_]+)\.html$ article\.php?storyid=$1 [L]
en
RewriteRule ^article-([0-9]+)-([^_]+)\.html$ sections/article\.php?storyid=$1 [L]

pouvez-vous m'aidez pour le deuxieme probleme ?

merci smile.gif
Dan
Bonjour Cecile,

Ton deuxième problème est loin d'être aussi trivial que le premier.

Créer les URLs avec le titre de l'article dépend de ta base de données.
Il te faudra aussi épurer tous les caracères non US-ASCII tels que é, è, à, ç etc.

Il est facile de transformer article-12-au-clair-de-la-lune.html en article.php?storyid=12 à l'aide d'une règle.
Il est sensiblement plus compliqué de faire l'inverse. Cela va supposer que tu te retrousses les manches et plonges dans le code source de tes programmes.
Pour faire cela, .htaccess ne peut pas t'aider.

Dan
cecileB2K
je me suis mal exprimée surement ... pourquoi dis-tu l'inverse ?

les deux exemples ne me semble pas opposés huh.gif

dans ce second exemple, je souhaiterais pourvoir réduire l'url (premier exemple) mais aussi renommer l'un de ces sous-répertoires

est-ce que la technique de l'url rewriting se borne seulement modifier/renommer la derniere partie de l'url ?

cecileB2K_oui_je_sais_j'suis_chiante
cecileB2K
c'est vraiment si compliqué que cela mon truc ou c'est moi qui me suis mal exprimée ? :-/
Dan
Salut Cecile,

Ce que je voulais dire c'est qu'il te faudra créer les URLs avec le titre de l'article au sein même de ton programme. La réécriture ne permettra pas de le faire.
C'est pour cela que je disais "dans l'autre sens"...

Comment veux-tu qu'une règle puisse transformer "article.php?id=123 ... en "123-le-chateau-de-ma-mere.html" ???
Il faut que le titre soit extrait de ta base de données. Et la réécriture d'URL n'y peut pas grand chose.

Par contre, pour transformer "123-le-chateau-de-ma-mere.html" en article.php?id=123, là cela devient facile. C'est une seule règle.

Je pense que ta compréhension de la réécriture d'URLs s'arrète à cette deuxième partie, non ? Mais il TE faudra créer les URLs au sein du programme php.

Dan
cecileB2K
CITATION(Dan @ mercredi 01 juin 2005, 18h01)
Comment veux-tu qu'une règle puisse transformer  "article.php?id=123 ... en "123-le-chateau-de-ma-mere.html" ???
Il faut que le titre soit extrait de ta base de données. Et la réécriture d'URL n'y peut pas grand chose.



c'est bien là le probleme, je n'ai JAMAIS dis que je voulais faire ça, mais alors absolument pas blush.gif

je ne sais plus comment le dire et suis un peu désespérée
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.