Estoy intentando redirigir algunas URL .htaccess
pero sin éxito. El problema es que tengo que redirigir dos partes diferentes de la URL.
Aquí hay un ejemplo de lo que tengo que redirigir:
example.com/huawei-reparatie/huawei-mate-7-reparatie
debe ser redirigido a:
example.com/reparatie/huawei/huawei-mate-7
Entonces, ¿qué hay que hacer?
- Dividido
huawei-reparatie
enreparatie/huawei
- Eliminar el
-reparatie
al final de cada URL
Estas son URL dinámicas, por lo que no es solo ésta. Tengo que redirigir todas estas URL para muchas marcas diferentes (como huawei
) y muchos dispositivos diferentes (como huawei-mate-7
)
Espero que alguien pueda ayudarme.
Respuesta1
Para aclarar sus requisitos:
/first-second/text-to-keep-removethis
Debería redirigir a;
/second/first/text-to-keep
Dónde
first
y contienensecond
sóloremovethis
letras az minúsculas.first
ysecond
están separados por un solo guión.removethis
tiene como prefijo un guión único (que también se elimina) y siempre aparece al final de la ruta URL.text-to-keep
es cualquier serie de caracteres az y guión.
Pruebe lo siguiente en la parte superior del .htaccess
archivo raíz, usando mod_rewrite:
RewriteEngine On
RewriteRule ^([a-z]+)-([a-z]+)/([a-z-]+?)-[a-z]+$ /$2/$1/$3 [R=302,L]
ElRewriteRule
patrón(primer argumento) es una expresión regular que coincide únicamente con la ruta URL solicitada, menos el prefijo de barra diagonal.
el $n
en elsustitucióncadena son referencias al grupo de captura correspondiente (subpatrón entre paréntesis) en elRewriteRule
patrón.
Cualquier cadena de consulta presente en la solicitud inicial se pasará sin modificaciones. Si se debe eliminar alguna cadena de consulta, agregue la QSD
bandera (Descartar cadena de consulta).
Tenga en cuenta que esta es una redirección temporal (302). Solo cambie a una redirección 301 (permanente), si esa es la intención, una vez que haya confirmado que funciona correctamente.