J'ai un site Web d'annuaire avec la structure d'URL suivante.
http://mywebsite.com/information/business-name/
http://mywebsite.com/information/business-name/product-names/
http://mywebsite.com/reviews/business-name/
http://mywebsite.com/comments/business-name/
Maintenant, il y a un changement dans le nom de l'entreprise et je veux changer les URL à celles-ci -
http://mywebsite.com/information/new-business-name/
http://mywebsite.com/information/new-business-name/product-names/
http://mywebsite.com/reviews/new-business-name/
http://mywebsite.com/comments/new-business-name/
Comment puis-je rediriger les anciennes URL vers les nouvelles URL du fichier htaccess?
Actuellement, j'utilise temporairement les éléments suivants -
RewriteRule ^information/business-name/(.*)$ /information/new-business-name/$1 [R=301,L]
RewriteRule ^reviews/business-name/(.*)$ /reviews/new-business-name/$1 [R=301,L]
RewriteRule ^comments/business-name/(.*)$ /comments/new-business-name/$1 [R=301,L]
Y a-t-il un moyen de le réécrire dans une règle car il me suffit de changer /business-name/
en /new-business-name/
?
Pour combiner ces trois règles en une seule, vous pouvez utiliser l'alternance (avec une barre verticale) dans un groupe de capture et une autre référence arrière dans la substitution:
Par exemple:
RewriteRule ^(information|reviews|comments)/business-name/(.*)$ /$1/new-business-name/$2 [R=301,L]
$1
est maintenant une référence vers "informations", "avis" ou "commentaires".
Selon votre situation, vous pourriez rendre ceci plus générique:
RewriteRule ^([^/]+)/business-name/(.*)$ /$1/new-business-name/$2 [R=301,L]
Cela correspondra à n'importe lequel sous-répertoire unique précédant "/ nom-entreprise /", y compris "informations", "critiques" et "commentaires".