web-dev-qa-db-fra.com

Affichage du contenu de pages à différentes URL (masquage), éventuellement avec .htaccess

Si j'ai une URL comme: -

domain.com/category/widgets/filter/blue
domain.com/category/widgets/filter/red

Et il est assez difficile de les reconstruire à quelque chose comme: -

domain.com/category/blue-widgets
domain.com/category/red-widgets

Existe-t-il un moyen d'utiliser des réécritures d'URL ou autre chose avec .htaccess ou sur le serveur pour afficher l'URL sous la forme domain.com/category/blue-widgets sur la page domain.com/category/widgets/filter/blue?

Je me suis penché sur le masquage d'URL, mais je n'ai rien trouvé et cela me dérange depuis près de 6 mois maintenant. Y a-t-il un moyen de réaliser ce que je veux faire?

FYI: Ceci est un site Web Magento et le processus ci-dessus, je veux implémenter pour potentiellement des centaines d'URL.

Modifier

Pour répondre à la réponse de @ kkugelmann: -

Je ne pouvais pas faire en sorte que votre proposition RewriteRule fasse une différence dans le fichier .htaccess et j'ai donc commencé à tester quelques éléments de ce . Testeur htaccess : -

La proposition RewriteRule ne fonctionnait pas dans cet appareil de test: -

enter image description here

Cependant, ce qui suit a: -

enter image description here

Mais l'ajout de l'un de ces RewriteRule dans le fichier .htaccess du site Web n'a pas réécrit l'URL du tout ...

Edit2

En passant, si j'ajoute [R=301,L] à la fin de la règle de réécriture d'URL, la règle est ensuite réécrite, mais bien entendu, 301 la redirige également, ce qui constitue un comportement indésirable.

Edit3

J'ai trouvé ne autre question avec le même problème ... Et un réponse acceptée qui a résolu le problème qui semblait être lié à l'utilisation de mod_proxy et du [P] balise sur la règle (si j'essaie cela, la page 404).

1
zigojacko

Vous aurez besoin de mod_rewrite activé et votre commande de réécriture doit ressembler à ceci:

RewriteEngine on 
RewriteRule ^category/([a-zA-Z]*)-([a-zA-Z]*)$ category/$2/filter/$1^

[Mettre à jour]

RewriteEngine on 
RewriteRule ^([a-zA-Z]+)/([a-zA-Z]+)/filter/([a-zA-Z]+)$ $1/$3-$2
2
kkugelmann