Exclusion d'un répertoire en .htaccess avec RedirectMatch pour Wordpress
-
20-12-2019 - |
Question
Je change ma structure de permaliens Wordpress de %year%/%months%/ à %postname%
J'ai donc créé ces règles d'alias de mod dans .htaccess Mais j'ai un problème:
RedirectMatch 301 /\d{4}/\d{2}/([^/]+)(/?)(.*)$ http://domainname.com/$1
Les règles redirigent également les images vers le répertoire wp-content, donc domainname.com/wp-content/uploads/2013/11/name.jpg devenir nom de domaine.com/nom.jpg
Je ne peux pas utiliser RewriteCond car ce RedirecMatch est mod_alias, j'essaie d'utiliser !^/(wp-content.*)$
mais ça ne marche pas.
Comment puis-je résoudre?Il vaut mieux utiliser RedirectMach ou RewriteRule (je n'ai pas changé de serveur) ?
Pouvez-vous poster un meilleure expression régulière?
Merci!
La solution
Vous devriez probablement vous en tenir à l'utilisation de mod_rewrite au lieu de mod_alias car cela interférera avec les règles mod_rewrite de wordpress.mod_rewrite et mod_alias affectent le même URI de requête à différents points du pipeline de traitement du fichier URL, vous pourriez donc finir par être redirigé et réécrit en même temps.
RewriteCond %{REQUEST_URI} !\.(jpeg|gif|png)$ [NC]
RewriteRule ^\d{4}/\d{2}/([^/]+?)(/?)(.*)$ http://domainname.com/$1 [L,R=301]
Autres conseils
Essayer ^
et $
:
RedirectMatch 301 ^/\d{4}/\d{2}/([^/]+)(/?)(.*)$ http://domainname.com/$1