Url Rewriting : enlever Espaces dans champs

A
Anonymous
Guest
Bonjour,

je viens consulter vos lumières, j'ai fait un rewriting qui fonctionne bien, à ma surprise, mais la solution n'est pas propre. Mon rewriting est le suivant :

RewriteRule ^voyage-([^-&]*)/vacances-([0-9]+)\.html$ /annuaire/vacances-voyage.php?cat_name=$1&cat_id=$2 [L]

Mon souci réside dans le contenu de mon champs "cat_name" où peuvent se trouver "Languedoc Roussillon" ou "Hotel de Luxe" et ce code est naturellement traduit dans le rewriting en "Languedoc%20Roussillon" ou "Hotel%20de%20Luxe"

Mon souhait ultime serait d'avoir des tirets "-" à la place des "%20" dans mon url rewritée :
voyage-Hotel%20de%20Luxe/vacances-2.html

qui donnerait

voyage-Hotel-de-Luxe/vacances-2.html


Merci beaucoup par avance pour votre aide
 
WRInaute occasionnel
Tu peux faire ça :
Code:
RewriteEngine on

RewriteBase /
RewriteRule ^(voyage-.*)\-(.*/vacances-[0-9]+\.html)$ $1\ $2
RewriteRule ^voyage-([^-&]*)/vacances-([0-9]+)\.html$ /annuaire/vacances-voyage.php?cat_name=$1&cat_id=$2 [L]

Qui te transforme
voyage-Hotel-de-Luxe/vacances-2.html
en
annuaire/vacances-voyage.php?cat_name=Hotel%20de%20Luxe&cat_id=2

Est-ce que c'est ce que tu cherches ?
 
A
Anonymous
Guest
Merci pour ton intérêt, j'ai testé ta proposition malheureusement, ca n'a pas l'air de fonctionner.

Pour répondre à ta question, j'ai un .htaccess qui contient mon rewriting :

Code:
RewriteEngine on
RewriteRule ^voyage-([^-&]*)/vacances-([0-9]+)\.html$  /annuaire/vacances-voyage.php?cat_name=$1&cat_id=$2  [L]
 
WRInaute occasionnel
Bizarre, ça fonctionne dans mes tests chez moi.

Tu peux re-essayer en remplaçant le [L] par [L,R] comme ça tu vois l'URL rewritée dans ton navigateur ?
 
A
Anonymous
Guest
je me demande si mes connaissances sont suffisantes si cela marche chez toi... car ici, rien de changé... je ne sais pas si on peut donner des urls sur le forum, mais pour que tu puisses visualiser mon souci, je te laisse le lien de ma page d'où partent les rewriting... tu pourras voir les liens des rubriques de l'annuaire qui ne sont pas avec des -

Code:
http://www.goaway.fr/annuaire/vacances-voyage.php

j'ai mis mon fichier htaccess comme tu me le suggères... serait ce un pb dans le lien que je fais pour pointer vers mes url rewritées. Mon lien actuel est :

Code:
<a href="../voyage-<?php echo $une_categorie["cat_name"]; ?>/vacances-<?php echo $une_categorie["id"]; ?>.html"><?php echo htmlspecialchars($une_categorie["cat_name"]); ?> </a>
c'est fait avec Dream.

Là, mon htaccess ressemble à ca :

Code:
ErrorDocument 401 http://www.goaway.fr/index.php
ErrorDocument 403 http://www.goaway.fr/index.php
ErrorDocument 404 http://www.goaway.fr/index.php
ErrorDocument 500 http://www.goaway.fr/index.php

RewriteEngine on

RewriteBase / 
RewriteRule ^(voyage-.*)\-(.*/vacances-[0-9]+\.html)$ $1\ $2 
RewriteRule ^voyage-([^-&]*)/vacances-([0-9]+)\.html$ /annuaire/vacances-voyage.php?cat_name=$1&cat_id=$2 [L,R] 
RewriteRule ^reserver-avion-([^-&]*)/promo-avion-([0-9]+)\.html$  /go-billet-avion/annuaire-billet-avion.php?cat_name=$1&cat_id=$2  [L]

Bon, si cela marche chez toi... ne te prends trop la tête, l'erreur doit venir de ma programmation.


En tout cas merci bien :)
 
WRInaute occasionnel
J'ai remarqué que ça ne fonctionnait pas avec les accents (genre compagnie aérienne). Est-ce avec celui-ci que tu as fait un test ? Auquel cas, c'est normal, mais je préfèrerais que tu adaptes tes noms de catégorie pour virer les accents que d'adapter les règles pour mettre des accents dans tes URL, je trouve ça laid :)

Si ce n'est pas ça le pb, alors j'avoue ne pas voir :( toutes mes excuses, je passe la main à qui veut essayer d'aider là ou j'abandonne :)

Et puis, bien sur, faut que "$une_categorie["cat_name"]" retourne la catégorie avec des tirets au lieu des espaces, mais je suppose que tu t'en doutes puisque c'est le type d'URL que tu veux.
 
A
Anonymous
Guest
Je vais voir cela de pret... en tout cas merci pour ton aide... c'est tres sympa

Bonne continuation,

j'y retourne :)
 
Discussions similaires
Haut