web-dev-qa-db-fra.com

Rediriger l'ancien permalien vers le nouveau

J'ai changé le permalien pour l'auteur-pages WordPress de /author/ à la variante néerlandaise /auteur/. Cela fonctionne parfaitement. Cependant, Google affiche l'erreur 404 dans la console de recherche. Ainsi, afin de rediriger les anciennes versions connues de Google vers les nouvelles, je souhaite rediriger les utilisateurs avec une redirection 301 de la manière suivante:

De: https://www.example.com/author/jack
À: https://www.example.com/auteur/jack

J'ai placé le code de redirection suivant dans le fichier .htaccess, mais cela ne semble pas fonctionner:

RedirectMatch 301 ^/author/$ ^/auteur/$1

Qu'est-ce que j'oublie ici?

3
DutchLearner
RedirectMatch 301 ^/author/$ ^/auteur/$1

Cela ne fera que rediriger /author/, mais l'URL cible n'est pas valide (avec un préfixe ^). L'URL cible est une chaîne ordinaire (qui accepte des espaces réservés), pas une expression régulière.

Cependant, puisque WordPress utilise déjà les directives mod_rewrite pour le contrôleur frontal. Vous devriez également utiliser mod_rewrite pour cette redirection (par opposition à un mod_alias RedirectMatch) afin d'éviter des conflits potentiels. (Les différents modules Apache: mod_alias, mod_rewrite, etc. s'exécutent indépendamment à différents moments de la requête, quel que soit l'ordre apparent des directives dans .htaccess. Cela risquerait de compliquer les choses pour le débogage.)

Essayez quelque chose comme ceci à la place avant les directives WordPress existantes:

RewriteRule ^author/(.*) /auteur/$1 [R=302,L]

Ceci redirigera /author/ vers /auteur/ et /author/<anything> vers /auteur/<anything>.

Ceci est actuellement une redirection 302 (temporaire). Changez-le en 301 (permanent) uniquement si vous êtes sûr que tout fonctionne correctement. Les redirections 301 sont mises en mémoire cache par le navigateur, ce qui rend les tests difficiles.

Assurez-vous que le cache de votre navigateur est vide avant de le tester.

2
MrWhite