Réécriture d'URL

Nouveau WRInaute
Bonjour je viens poser une question qui a surement du être posé maintes et maintes foi sur ce forum mais même en lisant la plupart des topic du forum et en m'inspirant des réponses je n'arrive pas à régler mon problème.

J'aurais besoin de réécrire des URL à la volée

L'URL que j'ai en ce moment est de ce format là : /Recherche/Page-1.html?cat=1&price_high=Max&price_low=Min&search=75002&stype=1

Et j'aimerais qu'elle devienne comme cela : /location-bureau-paris-2

Quelqu'un pourrait me donner la ligne précise que je dois mettre pour que ma réécriture fonctionne ?

Voilà le contenu de mon .htaccess

Code:
Options +followsymlinks
RewriteEngine On

RewriteRule /Recherche/Page-1.html?cat=1&price_high=Max&price_low=Min&search=75002&stype=1 /location-bureau-paris-2 [L]
 
WRInaute discret
Bonjour,

En fait il faut prendre le problème à l'envers...
Je pense que vous n'avez pas bien compris le principe du rewriting, voici un tutoriel intéressant pour débuter.

Dans vos pages, il faut générer des liens du type
Code:
/location_bureau_paris_75002.html (par exemple)
Votre rewriting permettra ensuite d'envoyer les variables à votre page sous la forme :
Code:
/recherche.php?transaction=location&type=bureau&ville=paris&cp=75002 (par exemple)
Pour réaliser ce rewriting :
Code:
Options +followsymlinks
RewriteEngine On
RewriteRule (.*)_(.*)_(.*)_(.*).html$ /recherche.php?transaction=$1&type=$2&ville=$3&cp=$4 [QSA,L]
A savoir aussi, les variables d'url seront transmises telles que grace au [QSA]
Donc avec
Code:
/location_bureau_paris_75002.html?page=3&tri=prix_asc&...
tout ce qui suit après "?" sera transmis à recherche.php
 
Nouveau WRInaute
Bonjour

Merci de votre réponse mais elle ne peut pas vraiment m'aider dans le sens où je n'ai pas accès au site et à la création de ses URL.

Mon entreprise s'occupe uniquement d'une prestation de référencement.

Le site envoie l'url suivante que nous appellerons l'url A :

Code:
 /Recherche/Page-1.html?cat=1&price_high=Max&price_low=Min&search=75002&stype=1

Et j'aimerais qu'elle apparaisse sous la forme suivante que nous appellerons url B :

Code:
/location-bureau-paris-2

Je voudrais juste un exemple de fichier htaccess pour que quand je cherche à accéder à l'URL A elle apparaisse sous la forme de l'URL B. Evidemment si je rentre l'adresse de l'url B il faut que le même contenu apparaisse.
 
WRInaute accro
1° si c'est un form en GET qui génère cette URL, tu ne sauras rien y faire.
2° si tu peux pas toucher au code et à ce qui génère ce lien, tu ne sauras rien y faire.
 
Nouveau WRInaute
Même si je sais que l'url et les paramètres ne changeront jamais ?

Je trouve cela étrange, ne prêtez pas attention aux paramètres dans l'url.

Imaginez juste que j'ai une url du type :
Code:
http://domaine.com/url-pas-belle

Et que je veuille qu'elle soit réécrite de cette façon :
Code:
http://domaine.com/jolie-url

Rassurez-moi, c'est faisable ?
 
WRInaute discret
Vous ne comprenez pas comment fonctionne l'url rewriting, vous devez lire le tutoriel que je vous ai indiqué dans ma première réponse.

L'url rewriting, ne change pas ce qui est indiqué dans la barre d'adresse !
C'est l'inverse : on affiche un lien "propre" et on envoie notre url "crade" via le htaccess à notre script.

Les liens qui sont en dur dans le site doivent être modifiés pour cela.
 
Nouveau WRInaute
N'y a t-il pas moyen de passer outre en faisant une redirection de l'url "crade" vers l'url "propre" ?

Je met en place le rewriting pour qu'un lien
Code:
http://domaine.com/jolie-url

renvoie en réalité le contenu de
Code:
http://domaine.com/url-pas-belle


Et dans le cas où quelqu'un clique sur un lien contenant l'url "crade" je fait une redirection de

Code:
http://domaine.com/url-pas-belle

Vers

Code:
http://domaine.com/url-jolie
 
WRInaute discret
Bien sûr mais ça n'a aucun intérêt puisque les liens en dur dans le site seront différents, cela risque surtout de plomber le référencement (vu que c'est ce que vous vendez... :roll: ), puisque la page sera accessible avec 2 url différentes et que vous n'êtes pas en mesure de déclarer les meta canonical (en tant que "référenceur" vous devez connaître, non ?) !

Ceci fonctionnera, mais encore une fois, ça ne modifiera pas les liens !!!
Code:
Options +followsymlinks
RewriteEngine On
RewriteRule mapage.html$ /monautrepage.html [QSA,L]

Pour les redirections, ce sera en PHP (ou autre), en dur dans le site, en modifiant les headers par exemple, mais vous ne pourrez pas le faire non plus puisque vous n'avez pas la main sur la source...

Désolé, mais je persiste à croire que vous n'avez strictement rien compris au système de rewriting via htaccess.
 
Nouveau WRInaute
Je n'ai effectivement jamais fait de réécriture d'url, après relecture du tuto je pense comprendre à peu près le principe.

J'ai accès à l'interface d'administration du CMS et je peux donc modifier la balise canonical.

Je ne suis qu'un pauvre stagiaire, mes connaissances sont forcément très modestes ^^
 
Discussions similaires
Haut