/ / Redirigir en htaccess es agregar directorio a una nueva URL; no redireccionar las URL de ExpressionEngine correctamente - .htaccess, mod-rewrite, redirect, indexing, expressionengine

Redirigir en htaccess es agregar directorio a una nueva URL; no redireccionar las URL de ExpressionEngine correctamente - .htaccess, mod-rewrite, redirect, indexing, expressionengine

Estoy intentando configurar una regla de redireccionamiento para un nuevo sitio de ExpressionEngine.

Estoy usando el siguiente código colocado en mi sitio "s .htaccess archivo (la última sección es eliminar index.php de las URL de ExpressionEngine - esto funciona):

<IfModule mod_rewrite.c>
RewriteEngine On

RedirectMatch 301 ^/2010/example/*$ http://sub.domain.com/new-page/$1

# Removes index.php from ExpressionEngine URLs
RewriteCond $1 !.(gif|jpe?g|png)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>

Se produce una redirección de tipo, pero la URL que obtengo es la siguiente:

http://sub.domain.com/new-page2010/example/

¡He probado diferentes combinaciones y me está subiendo por la pared! ¿Algún consejo sobre dónde me voy mal?

Respuestas

1 para la respuesta № 1

La sintaxis de apache "s. Directiva RedirectMatch espera el uso de paréntesis en el RegEx:

La expresión regular suministrada se compara con la ruta URL, y Si coincide, el servidor sustituirá cualquier coincidencia entre paréntesis. en la cadena dada.

Usando un RedirectMatch es equivalente a Redirigir, pero hace uso de expresiones regulares estándar, en lugar de una simple coincidencia de prefijo.

Por lo tanto, corrigiendo su ejemplo, una directiva RedirectMatch válida sería:

RedirectMatch 301 ^/2010/example/(.*)$ http://sub.domain.com/new-page/$1

Puede aprovechar todo el poder del motor de reescritura de Apache usando un Reescribir en lugar:

RewriteRule ^2011/example/(.*)$ http://sub.domain.com/new-page/$1 [R=301,L]

Dependiendo de lo que desee redirigir (una sola página frente a un subdirectorio completo), es posible que deba modificar la ruta de la URL original en cada ejemplo.