8768 sujets

Développement web côté serveur, CMS

Bonjour,

Les urls de mon site sont du type monsite.com/catalogue.php?categorie=fleurs et monsite.com/catalogue.php?categorie=fleurs&produit=tulipes-rouges
Grâce à ce .htaccess, j'arrive à réécrire comme suit : monsite.com/fleurs et monsite.com/fleurs,tulipes-rouges

Voici le code :

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^([a-zA-Z0-9-]+)$ catalogue.php?categorie=$1 [L]
RewriteRule ^([a-zA-Z0-9-]+),([a-zA-Z0-9-]+)$ catalogue.php?categorie=$1&produit=$2 [L]


1ère question : Si je souhaite utiliser le tiret - comme séparateur, la page ne s'affiche pas (page blanche)
Je précise que j'ai bien modifié au préalable les liens de mon site (ex. : monsite.com/fleurs-tulipes-rouges). Pourquoi cela ne fonctionne-t-il pas, alors qu'avec un underscore ou une virgule (ce que j'utilise actuellement), tout fonctionne bien ?

2ème question : Je souhaiterai idéalement utiliser le slash / comme séparateur. Dans ce cas, la page s'affiche mais de manière incorrecte (plus de prise en compte de la feuille de style).
Est-ce possible (je souhaiterai par exemple que l'url soit monsite.com/fleurs/tulipes-rouges) ?

Merci d'avance !

Précision : hébergé chez OVH 240plan
Modifié par tulipe_49 (26 Mar 2008 - 13:04)
Administrateur
1) Le tiret est un caractère spécial (cf : a-z dans les règles), il faut probablement l'échapper par un antislash : \-

2) Il faut utiliser des urls absolues pour faire référence à la feuille de style.
En effet pour href="styles.css" dans monsite.com/fleurs/tulipes-rouges, le navigateur fait appel à "monsite.com/fleurs/tulipes-rouges/styles.css", il faut alors préciser plutôt href="/styles.css" ou href="/css/styles.css" (selon le chemin de base).
Bonjour

Attention à l'utilisation de / (slash) dans les URL rewritées, ça crée des pseudo-répertoires fantômes et de pseudo-arborescences fictives. L'idéal c'est quand l'URL correspond exactement à ce qu'elle serait si la page était statique.

Un petit lien
Modifié par Arsene (26 Mar 2008 - 13:57)
Merci à tous les deux. Je parviens à utiliser le séparateur slash / en plaçant <base href="http://www.monsite.com/repertoire/" > dans le <head> de chaque page. C'est parfait ! Smiley smile
PS. : concernant le tiret, cela ne fonctionne toujours pas avec l'antislash... si quelqu'un a une idée...
Modifié par tulipe_49 (26 Mar 2008 - 18:36)
J'utilise des tirets sans aucun problème dans mes rewrite... Je dis peut-être une grosse bêtise mais c'est peut-être un prob de paramétrage chez OVH, je ne sais pas ???? Sur le lien que j'ai donné plus haut je crois qu'il y a justement un passage sur OVH, essaie de voir là-dedans ?
Tant qu'on y est, une question aux as du rewriting>référencement : est-ce qu'une URL fantaisiste (juste pour le fun) du genre http://www.fleuriste.com/bouquets.............tulipes serait pénalisante en terme d'accessibilité ou de référencement ?