Exluir un directorio en .htaccess con RedirectMatch para Wordpress
-
20-12-2019 - |
Pregunta
Cambio mi estructura de enlace permanente de Wordpress de %año%/%meses%/ a %postname%
Entonces creo estas reglas de alias mod en .htaccess pero tengo un problema:
RedirectMatch 301 /\d{4}/\d{2}/([^/]+)(/?)(.*)$ http://domainname.com/$1
Las reglas también redirigen las imágenes en el directorio wp-content, por lo que nombrededominio.com/wp-content/uploads/2013/11/nombre.jpg convertirse nombre de dominio.com/nombre.jpg
No puedo usar RewriteCond porque este RedirecMatch es mod_alias, trato de usar !^/(wp-content.*)$
pero no funciona.
¿Cómo puedo resolver??¿Es mejor usar RedirectMach o RewriteRule (no he cambiado el servidor)?
¿Puedes publicar un mejor expresión regular?
¡Gracias!
Solución
Probablemente deberías seguir usando mod_rewrite en lugar de mod_alias porque interferirá con las reglas mod_rewrite de WordPress.Tanto mod_rewrite como mod_alias afectan el mismo URI de solicitud en diferentes puntos del proceso de procesamiento del archivo URL, por lo que podría terminar siendo redirigido y reescrito al mismo tiempo.
RewriteCond %{REQUEST_URI} !\.(jpeg|gif|png)$ [NC]
RewriteRule ^\d{4}/\d{2}/([^/]+?)(/?)(.*)$ http://domainname.com/$1 [L,R=301]
Otros consejos
Intentar ^
y $
:
RedirectMatch 301 ^/\d{4}/\d{2}/([^/]+)(/?)(.*)$ http://domainname.com/$1