J'ai récemment essayé de trouver un moyen de masquer l'URL visible dans le navigateur (donc pas de redirection 301) tout en affichant le même contenu que l'URL d'origine.
Voici le scénario ...
Les URL actuelles ressemblent à ceci: -
domain.com/parent-category/sub-category/filter/brand
(parent-category
et sub-category
seront toujours le même mot).
Je souhaite continuer à afficher le contenu de ces URL, mais convertir les URL pour qu'elles se présentent comme suit: -
domain.com/brand-keyword
(keyword
sera toujours le même mot).
J'apprécierais vraiment si des experts en .htaccess pouvaient conseiller si cela était possible, s'il vous plaît. Soit dit en passant, c'est un magasin Magento.
Ce qui suit m'a déjà été suggéré: -
RewriteRule ^parent-category/([^/]+)/filter/([^/]+)/?$ /$2-$1 [L,NC]
Mais cela n’a pas eu l’effet souhaité ... (L’adresse URL visible n’a pas encore été modifiée dans le navigateur, mais l’ajout de R, 301
le redirige cependant).
URL actuelle domain.com/showering/showers/filter/alliance
URL requise domain.com/alliance-showers
Vous définissez une règle à l'envers, donc cela ne fonctionne pas. La syntaxe est la suivante:
Cela fonctionnerait, mais casserait probablement votre magento (comme toutes les urls avec un tiret "-" dans ce sera réécrit):
RewriteRule ^/(.*)-(.*)$ /parent-category/sub-category/$2/$1 [L,NC]
Je suggérerais donc de le placer sous un mot clé statique, tel que "boutique". Ainsi, lorsque vous accédez à domain.com/shop/brand-filter
, il sera réécrit en /parent-category/sub-category/filter/brand
:
RewriteRule ^/shop/(.*)-(.*)$ /parent-category/sub-category/$2/$1 [L,NC]
Plus d'informations: http://httpd.Apache.org/docs/current/rewrite/intro.html
Les expressions régulières (.*)
signifient un ou plusieurs caractères, où: