es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué una de mis reescrituras de URL amigables para SEO en htaccess funciona y la otra no?

Estoy creando URLs amigables para SEO a través de reescrituras htaccess.

Lo tengo funcionando correctamente para un grupo de URLs pero cuando he creado las reglas para otro grupo, deja de funcionar correctamente para ese grupo pero sigue funcionando para el grupo original. Utiliza la página correcta, pero la dirección real en la URL también cambia y no se queda en la URL amigable.

Esto funciona:

RewriteRule ^toys/([a-zA-Z0-9.-_]+)/([a-zA-Z0-9.-_]+) toysearch.php?category=$1&dinosaur=$2 [QSA]
RewriteRule ^toys/([a-zA-Z0-9.-_]+) toysearch.php?category=$1 [QSA]

La URL se mantiene como /toys/categoría.

Pero esto no funciona:

RewriteRule ^books/([a-zA-Z0-9.-_]+)/([a-zA-Z0-9.-_]+) bookssearch.php?category=$1&dinosaur=$2 [QSA]
RewriteRule ^books/([a-zA-Z0-9.-_]+) bookssearch.php?category=$1 [QSA]

La URL cambia de /books/categoría a:

/booksearch.php?category=libros-de-historias

¿Por qué está cambiando la URL para ésta y no para la otra? Todo lo que hice fue copiar las dos líneas y cambiar las palabras de “toys” por “books”.

EDICIÓN:
Estas son todas mis directivas:

RewriteRule ^books/([a-zA-Z0-9.-_]+)/([a-zA-Z0-9.-_]+) bookssearch.php?category=$1&dinosaur=$2 [QSA]
RewriteRule ^books/([a-zA-Z0-9.-_]+) bookssearch.php?category=$1 [QSA]
RewriteRule ^dinosaurs/([a-zA-Z0-9.-_]+) dinosearch.php?dinosaur=$1 [QSA]
RewriteRule ^category/([a-zA-Z0-9.-_]+) catsearch.php?name=$1 [QSA]
RewriteRule ^toys/([a-zA-Z0-9.-_]+)/([a-zA-Z0-9.-_]+) toysearch.php?category=$1&dinosaur=$2 [QSA]
RewriteRule ^toys/([a-zA-Z0-9.-_]+) toysearch.php?category=$1 [QSA]
RewriteRule ^xmas/([a-zA-Z0-9.-_]+)/([a-zA-Z0-9.-_]+) xmassearch.php?category=$1&dinosaur=$2 [QSA]
RewriteRule ^xmas/([a-zA-Z0-9.-_]+) xmassearch.php?category=$1 [QSA]

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que puede haber un conflicto con la regla “books” y otra regla en tu archivo .htaccess. Quizá haya una regla que esté redireccionando la URL a “bookssearch.php” en lugar de mantener el formato de URL amigable.

    Intenta reorganizar el orden de tus reglas para que las reglas “books” estén antes que cualquier otra regla que pueda entrar en conflicto. Adicionalmente, asegúrate de que no haya errores o errores de ortografía en las nuevas reglas que puedan estar causando el problema.

    Revisar tu archivo .htaccess y asegurarte de que todas las reglas están en el orden correcto y funcionando como se pretende debería ayudar a resolver el problema.

Comments are closed.