Foros del Web » Administración de Sistemas » Apache »

[SOLUCIONADO] Problema con urls "amigables" y .htaccess

Estas en el tema de Problema con urls "amigables" y .htaccess en el foro de Apache en Foros del Web. estoy hecho un pequeño lío con esto de las reglas Rewrite en el htaccess... de momento lo que quiero es cambiar mis urls de de ...
  #1 (permalink)  
Antiguo 12/01/2016, 00:24
 
Fecha de Ingreso: diciembre-2015
Mensajes: 115
Antigüedad: 9 años
Puntos: 2
Sonrisa Problema con urls "amigables" y .htaccess

estoy hecho un pequeño lío con esto de las reglas Rewrite en el htaccess... de momento lo que quiero es cambiar mis urls de

de
articulos/post.php?id=12

a
articulos/post/12/nombre-del-post

de momento lo he conseguido (a medias) con esta regla en el htaccess:
RewriteRule ^post/([a-zA-Z0-9-]*)/(.*)$ post.php?n=$1&url=$2

y este trozo de php
Código PHP:
Ver original
  1. $sql = mysql_query("SELECT * FROM post ORDER BY id DESC");
  2. while($row=mysql_fetch_array($sql))
  3.       {
  4.       //se construye la url en base al titulo de post
  5.       $titulo=$row['titulo'];
  6.       $url = str_replace(" ", "-", $titulo);


y en el enlace destino hago la redireccion asi:
Código PHP:
Ver original
  1. <a href="articulos/post/<?php echo $row['id']; ?>/<?php echo $url; ?>">


el detalle esta en que en mi url ,despues del id en este caso el 12... la cosa va mal

articulos/post/12/ aca si me muestra el titulo del post, pero si por cuenta propia lo borro y pongo cualquier letra simbolo o incluso si borro todo el titulo igual me muestra la pagina, en cambio si borro el "/" despues del 12, si me da el error como deberia ser y no me muestra la pagina... porque con el titulo si? eso es un fallo de seguridad tremendo la verdad no me gustarias dejarlo asi, es como si la regla no me estuviera leyendo la segunda variable

Última edición por kukiko11; 12/01/2016 a las 02:34
  #2 (permalink)  
Antiguo 12/01/2016, 15:56
Avatar de carlillos  
Fecha de Ingreso: febrero-2007
Ubicación: México
Mensajes: 245
Antigüedad: 17 años, 10 meses
Puntos: 21
Respuesta: Problema con urls "amigables" y .htaccess

Hola, como lo mencionas tu script post.php sólo estaría recibiendo el id del post y no el título, por lo que así no vas a poder verificarlo.
Cita:
de momento lo que quiero es cambiar mis urls de

de
articulos/post.php?id=12

a
articulos/post/12/nombre-del-post
Más bien lo que necesitarías sería cambiar tus urls de:

articulos/post.php?id=12&titulo=nombre-del-post
a:
articulos/post/12/nombre-del-post

Podría ser algo así:
Código:
RewriteRule ^articulos/post/([0-9]+)/([^/]+)$ articulos/post.php?id=$1&titulo=$2 [L]
Con eso tu script post.php recibiría el título y el id para que puedas verificar en tu base de datos si son válidos o no.
  #3 (permalink)  
Antiguo 12/01/2016, 18:38
 
Fecha de Ingreso: diciembre-2015
Mensajes: 115
Antigüedad: 9 años
Puntos: 2
Sonrisa Respuesta: Problema con urls "amigables" y .htaccess

Cita:
Iniciado por carlillos Ver Mensaje
Hola, como lo mencionas tu script post.php sólo estaría recibiendo el id del post y no el título, por lo que así no vas a poder verificarlo.


Más bien lo que necesitarías sería cambiar tus urls de:

articulos/post.php?id=12&titulo=nombre-del-post
a:
articulos/post/12/nombre-del-post

Podría ser algo así:
Código:
RewriteRule ^articulos/post/([0-9]+)/([^/]+)$ articulos/post.php?id=$1&titulo=$2 [L]
Con eso tu script post.php recibiría el título y el id para que puedas verificar en tu base de datos si son válidos o no.
ohhh... y como quedaria el enlace de redireccion en ese caso?

ose el <a href="articulos/post/<?php echo $row['id']; ?>/<?php echo $url; ?>">

?
  #4 (permalink)  
Antiguo 12/01/2016, 18:55
 
Fecha de Ingreso: diciembre-2015
Mensajes: 115
Antigüedad: 9 años
Puntos: 2
Respuesta: Problema con urls "amigables" y .htaccess

ya logre acomodar el enlace todo funciona de las mil maravillas n_n mil gracias
  #5 (permalink)  
Antiguo 12/01/2016, 19:01
Avatar de carlillos  
Fecha de Ingreso: febrero-2007
Ubicación: México
Mensajes: 245
Antigüedad: 17 años, 10 meses
Puntos: 21
Respuesta: Problema con urls "amigables" y .htaccess

Cita:
Iniciado por kukiko11 Ver Mensaje
ohhh... y como quedaria el enlace de redireccion en ese caso?

ose el <a href="articulos/post/<?php echo $row['id']; ?>/<?php echo $url; ?>">

?
Quedaría igual que como ya lo tienes.
Código PHP:
Ver original
  1. <a href="articulos/post/<?php echo $row['id']; ?>/<?php echo $url; ?>">

Cita:
Iniciado por kukiko11 Ver Mensaje
ya logre acomodar el enlace todo funciona de las mil maravillas n_n mil gracias
¡Excelente, saludos!
  #6 (permalink)  
Antiguo 20/01/2016, 10:09
 
Fecha de Ingreso: diciembre-2015
Mensajes: 19
Antigüedad: 9 años
Puntos: 0
Respuesta: Problema con urls "amigables" y .htaccess

Hola, yo tb estoy liado con esto de las url, he conseguido pasar de:
/ofertas_detalle_empresa.php?oferta_id=1012FVRStnwH BhNTgpVH
a
/oferta/1012FVRStnwHBhNTgpVH
de la siguiente manera:
RewriteRule ^oferta/([^/]*)$ /ofertas_detalle_empresa.php?oferta_id=$1 [L]
¿Se podrían dejar sólo números x ejemplo?
y otra cuestión ¿como tendrían que ser los link a href ?
Muchas gracias

Etiquetas: web+general
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:12.