web-dev-qa-db-fra.com

Besoin d'aide pour corriger le code de redirection d'expression régulière

J'ai des permaliens personnalisés avec ce code

/%year%/%monthnum%/%postname%.html

et maintenant basculer vers un autre permaliens personnalisés

%postname%.html

donc, évidemment, tout mon contenu est maintenant 404 non trouvé, dans le réglage de Redirection Yoast, il existe des options de redirection d'expression régulières correctes ou je pourrais utiliser HAccess pour rediriger mon ancien contenu.

tout le monde peut m'aider avec le code ou la suggestion de rediriger via Yoast ou Htacces ??

Merci

1
kalkun

En haut de votre .htaccess Fichier, avant Votre existant WordPress directives, vous pouvez faire quelque chose comme ce qui suit pour rediriger l'ancien Permalink:

RewriteRule ^\d{4}/\d\d/([\w-]+\.html)$ /$1 [R=301,L]

Le RewriteRule -modèle correspond à l'URL-Chemin moins le préfixe SLASH.

\d{4}/ - Correspond à l'année à 4 chiffres, suivie d'une barre oblique.

\d\d/ - Correspond au numéro de mois à 2 chiffres, suivi d'une barre oblique.

([\w-]+\.html) - correspond à la POSTNAME et .html extension. Les parenthèses environnantes en font cela dans un groupe de capture qui est ensuite référencé dans la chaîne de substitution avec le $1 brouillon. [\w-] correspond aux caractères dans la plage a-z, A-Z, 0-9, _ (souligné) et - (trait d'union). Si votre POSTNAME peut contenir d'autres caractères, ceux-ci devront être ajoutés à cette classe de caractères (bien que le trait d'union doit apparaître dernier).

Testez avec une redirection de 302 (temporaire) pour éviter les problèmes de mise en cache au cas où tout va mal. 301 (permanent) Les redirections sont en cache de manière persistante par le navigateur par défaut.

1
MrWhite