Bonjour à toutes et à tous,
Tout nouveau sur ce forum, je me tourne vers vous car j'ai grand besoin d'aide (avant de finir chauve à force de m'arracher les cheveux qu'il me reste encore).
Notez avant tout que je suis un gros débutant en matière de réécriture d'url et d'expressions régulières. Je les utilise d'un autre côté depuis plusieurs années, mais on m'avait mâché le travail (mal je pense cela dit) et je n'avais jamais pris la peine ni le temps de comprendre. Aujourd'hui c'est différent, j'ai certes personne pour me mâcher le boulot, mais j'ai aussi une grande envie de comprendre, d'autant que ça a l'air quand même 'achement puissant comme truc. Ceci dit, ayez pitié, j'ai déjà ingurgité moult lectures sur le sujet
Entrons donc dans le vif du sujet si vous le voulez bien.
Imaginons que j'ai un site web qui présente les boutiques des commerçants de mon village. Pour simplifier, on va prendre des boutiques que tout le monde connaît.
- Ce que je veux obtenir, c'est des URL de la forme : /boutiques/decathlon.php
- Ce que j'ai, c'est une page "page-boutiques.php" dans mon répertoire /boutiques/ , qui prend le nom de la boutique en paramètre (b, c'est le paramètre).
En résumé si on tape /boutiques/page-boutiques.php?b=decathlon. Pas de souci, ça marche. Mais c'est pas beau évidemment.
Je cherche donc à réécrire l'url en question.
Alors comme je disais, je me suis documenté, j'ai fait pas mal d'essais, j'ai essayé de comprendre... mais j'arrive à rien (sinon je serais pas là ^^).
Actuellement je suis là dessus :
RewriteRule ^([a-zA-Z0-9]+)\.php$ /boutiques/page-boutiques.php?b=$1 [L]
Règle qui fonctionne très bien avec decathlon. Là où ça se complique, c'est si on prend La Redoute par exemple.
La page désirée est : /boutiques/la-redoute.php
Sauf que le tiret me pose quelques soucis... Alors j'ai essayé d'ajouter ce fameux tiret à ma règle, comme ça :
RewriteRule ^([a-zA-Z0-9-]+)\.php$ /boutiques/page-boutiques.php?b=$1 [L]
Et ça marche pas figurez-vous. Erreur 500 sur le site.
Et là où le bât blesse, c'est que quand je teste cette expression sur des sites dédiés (regex101.com par exemple), bah il me dit que c'est tout bon.
Notez aussi en passant, mais ça, ce sera le problème suivant, que du coup, l'accès à la page index.php du répertoire /boutiques/ n'est plus possible avec cette règle.
Et là je sèche aussi.
Je précise que mon fichier .htaccess est à la racine du dossier /boutiques/
Voilà, j'espère que vous pourrez m'aider avant que je n'ai besoin d'implants capillaires ^ ^
Partager