entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Uso de Redirect 301 en .htaccess

Buenas tardes.

Primero que nada me gustaría agradecer por el espacio, y también a todos los usuarios que a diario se interesan por las preguntas de otros en este foro, es de gran utilidad para algunas ocasiones.

Estoy intentando hacer lo siguiente para terminar de armar las URLs amigables en mi sitio:

Redirect 301 /iniciar-sesion /cuenta/iniciar-sesion
Redirect 301 /iniciar-sesion.php /cuenta/iniciar-sesion

El problema es que como hay dos Redirect 301 de la misma URL, cuando intento ingresar desde /iniciar-sesion o /iniciar-sesion.php me tira el siguiente error:

enter image description here

Sin embargo, si saco una de esas líneas e ingreso desde la URL que quede, me redirige bien. El problema justamente sería (en caso de dejarlo así) que podrán entrar desde la URL faltante y no quedaría estético que se vea en una bien y en otra no.

¿Qué podría hacer al respecto?

Saludos.

2votos

carlossevi comentado

¿Ese es todo el contenido completo de tu archivo .htaccess? Por favor ponlo completo para ver si tiene iteracciones con otras reglas y/o redirecciones.

Adicionalmente podrías decirnos si pulsando en "Detalles" de la captura que adjuntas te aporta algo más de información.

1voto

Leyes comentado

<IfModule mod_rewrite.c>
# Activar RewriteEngine
RewriteEngine on
RewriteBase /
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f

RewriteRule ^(.*)$ $1.php
RewriteRule ^cuenta/iniciar-sesion iniciar-sesion.php
</IfModule>
Redirect 301 /iniciar-sesion /cuenta/iniciar-sesion
Redirect 301 /cuenta/iniciar-sesion.php /cuenta/iniciar-sesion
ErrorDocument 400 /
ErrorDocument 401 /
ErrorDocument 403 /
ErrorDocument 404 /
ErrorDocument 500 /

Lo que hace mi .htaccess es, si ingresan a /cuenta/iniciar-sesion, les muestra el /iniciar-sesion.php (sin cambiar la URL de arriba).
Después, en los Redirect 301, si entran a /iniciar-sesion (sin la categoría de cuenta), los manda para la URL con categoría. Y también, si en la misma categoría ponen /cuenta/iniciar-sesion.php, es decir con el formato .php atrás, los manda al normal del Pretty URLs (sin el .php).
Lo que busco hacer es algo similar a esto último, pero para usar cuando ingresan desde /iniciar-sesion.php (directorio principal y con formato .php en la terminación), para que los mande a /cuenta/iniciar-sesion, pero al poner dicha línea que sería esta:

Redirect 301 /iniciar-sesion.php /cuenta/iniciar-sesion

Me sale ese error.

En cuanto a eso de "Detalles", no me aparece nada ahí. Me da más bien como un buscador de problemas pero referido a Windows creo, ninguna ayuda de programación.

Gracias por comentar.

3votos

carlossevi comentado

Con esa línea que dices que quieres añadir creo que generas un bucle, te pongo los pasos:

Navegador solicita /iniciar-sesion.php y servidor le dice que acuda a /cuenta/iniciar-sesion (por el redirect).
Navegador solicita /cuenta/iniciar-sesion y servidor intenta entregarle /iniciar-sesion.php (por el rewrite).
Servidor intenta cargar /iniciar-sesion.php pero el mismo se redirige a /cuenta/iniciar-sesion y ya tenemos el bucle montado.

0voto

Leyes comentado

Creo entender y tener más o menos una idea en mi cabeza de lo que mencionás y afirmativamente sí, está ocurriendo así. En definitiva, lo que busco hacer es que cuando ingresan desde /iniciar-sesion.php (directorio principal y con formato .php en la terminación) los mande a /cuenta/iniciar-sesion. ¿Existe alguna manera de hacerlo con el código que actualmente poseo evitando que se produzca el error antes mencionado?
Desde ya, muchas gracias.

-2votos

Leyes comentado

¿Alguien tendrá una idea de cómo puedo resolver esto?
Muchas gracias.

2votos

bl4z3r comentado

@KevinLeyes ¿no intentaste plantear lo que quieres de otra manera?

0voto

Leyes comentado

Hola @bl4z3r.

Ahora mismo con el código que tengo en el .htaccess (mencionado anteriormente) sucede lo siguiente:

  • Al entrar a /iniciar-sesion me lleva a /cuenta/iniciar-sesion.
  • Al entrar a /cuenta/iniciar-sesion.php me lleva a /cuenta/iniciar-sesion.

  • Al entrar a /iniciar-sesion.php NO me lleva a /cuenta/iniciar-sesion.

Quiero lograr lo último.

Saludos.

0voto

Leyes comentado

Ahora mismo con el código que tengo en el .htaccess (mencionado anteriormente) sucede lo siguiente:

Al entrar a /iniciar-sesion me lleva a /cuenta/iniciar-sesion.

Al entrar a /cuenta/iniciar-sesion.php me lleva a /cuenta/iniciar-sesion.
Al entrar a /iniciar-sesion.php NO me lleva a /cuenta/iniciar-sesion.

Quiero lograr lo último.

Saludos.

0voto

Leyes comentado

Buenas tardes. Sigo necesitando hacer lo mismo. Agradeceré si alguien puede darme una mano. Saludos.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta