Ver Mensaje Individual
  #2 (permalink)  
Antiguo 16/04/2021, 08:40
tuadmin
 
Fecha de Ingreso: abril-2006
Mensajes: 583
Antigüedad: 18 años
Puntos: 120
Respuesta: Redirección con htaccess

te aclaro en esta parte

Cita:
Iniciado por SUSMO Ver Mensaje
Yo tenia entendido que .* significaba cualquier carácter i que por tanto, también entraban en ese grupo los especiales, no es así?
Podéis indicarme cual es el problema? y cual seria la redirección correcta?

Gracias!

.* en expresiones regulares significa, PUEDE que tenga algun caracter, eso incluye otros simbolos como "/" , ojo ahi eso romperia un poco la estrutura
producto/algo/otro/etc

pero bueno no ocurre por que tomas las primeras coincidencias,
lo correcto seria que hagas uso de ".+" en lugar de ".*"

ahora aqui tienes un problema de diseño
si tienes una URL tipo

/detalle-producto.php?name=esto/es/nombre&id=223

para entrar ahi directamente no hay problema, pero que ocurreo cuando haces uso del modrewrite??

ya que el simbolo "/" es muy exclusivo y tendras que codificarlo para que tu modwrite funcione

tu enlace tendria que tener la forma de



Código HTML:
<a href="producto/esto%2Fes%2Fnombre/223"> producto/esto%2Fes%2Fnombre/223 </a> 
o bien como alternativa modificar tu modrewrite, como sabes que tu ID no tendra caracteres RAROS ponerlo al principio, y todo lo que venga , darlo a tu variable "name"

Código HTML:
RewriteRule ^producto/(.+)/(.*)$    /detalle-producto.php?name=$2&id=$1 [QSA]
con eso tu variable "name" se tragara todo lo que venga
y tus enlaces estarian como quisieras

Código HTML:
<a href="producto/223/esto/es/nombre"> producto/223/esto/es/nombre </a> 
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.com/pools/c/8lmNLmWnG9