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

urls amigables con diferentes url originales

Estas en el tema de urls amigables con diferentes url originales en el foro de Apache en Foros del Web. Estoy empezando a utilizar las urls pero tengo problema cuando quiero utilizar dos url diferentes por ejemplo estas dos. producto.php?pais=francia&ciudad=paris&producto=in formatica detalles_producto.php?id=10 hasta ahora en ...
  #1 (permalink)  
Antiguo 18/02/2014, 06:26
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 8 años, 11 meses
Puntos: 10
urls amigables con diferentes url originales

Estoy empezando a utilizar las urls pero tengo problema cuando quiero utilizar dos url diferentes por ejemplo estas dos.


producto.php?pais=francia&ciudad=paris&producto=in formatica

detalles_producto.php?id=10


hasta ahora en el htaccess utilizo esta regla:

RewriteRule ^(.*)/(.*)/(.*)$ producto.php?pais=$1&ciudad=$2&producto=$3


osea la primera url pasaria a esto:

midominio/francia/paris/informatica


pero si por ejemplo quiero tener un enlace que contenga la variable id de la segunda url esta detalles_producto.php?id=10
como tendria que hacerlo?

entiendo que solo puede tener una url amigable pero si necesito saber solo el id del producto o cualquier dato independiente de los demas como se deberia hacer.

gracias de antemano y un saludo.
  #2 (permalink)  
Antiguo 18/02/2014, 08:41
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 6 años, 3 meses
Puntos: 578
Respuesta: urls amigables con diferentes url originales

Puedes crear tantas reglas como quieras.

RewriteRule ^(.*)$ detalles_producto.php?id=$1

Te recomiendo que utilices la bandera [L], para que no se pasen varias reglas.
  #3 (permalink)  
Antiguo 18/02/2014, 09:01
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 8 años, 11 meses
Puntos: 10
Respuesta: urls amigables con diferentes url originales

Hola, gracias por tu respuesta, pero me quedado igual quizas no me explique bien, entiendo que se pueden crear todas las reglas que quiera pero solo para una url.


En este caso tendria que poner todos los parametros en una misma url es decir algo asin:

RewriteRule ^(.*)/(.*)/(.*)/([0-9])$ producto.php?pais=$1&ciudad=$2&producto=$3&id=$4

tendria que ser asin?

porque asin le veo conflictos de navegacion es decir que si quiero solo saber el id del producto tengo que escribir toda la url, no se si me explico.
  #4 (permalink)  
Antiguo 18/02/2014, 09:06
 
Fecha de Ingreso: noviembre-2011
Ubicación: Valladolid, Yucatan,México
Mensajes: 11
Antigüedad: 8 años
Puntos: 1
Respuesta: urls amigables con diferentes url originales

solo recibes un get, que contendrá toda tu cadena de valores de esta forma /pais/ciudad/producto/, solo como un ejemplo

utiliza este código en tu htacces
Código PHP:
Ver original
  1. RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]

para obtener los valores puedes utilizar un código de la siguiente forma en tu codigo php

Código PHP:
Ver original
  1. if(isset($_GET['url'])){
  2.        $url = array_filter(explode('/',filter_input(INPUT_GET,'url',FILTER_SANITIZE_URL)))
  3. }

De esta forma puedes enviar muchos valores en un solo get
  #5 (permalink)  
Antiguo 18/02/2014, 09:15
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 8 años, 11 meses
Puntos: 10
Respuesta: urls amigables con diferentes url originales

Cita:
Iniciado por angelvargaspool Ver Mensaje
solo recibes un get, que contendrá toda tu cadena de valores de esta forma /pais/ciudad/producto/, solo como un ejemplo

utiliza este código en tu htacces
Código PHP:
Ver original
  1. RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]

para obtener los valores puedes utilizar un código de la siguiente forma en tu codigo php

Código PHP:
Ver original
  1. if(isset($_GET['url'])){
  2.        $url = array_filter(explode('/',filter_input(INPUT_GET,'url',FILTER_SANITIZE_URL)))
  3. }

De esta forma puedes enviar muchos valores en un solo get
Hola gracias por tu respuesta pero no se si me explique mal pero eso no es lo que quiero, ahi no esta mi problema, es que si no necesito el id pues no tener que insertarlo en la url si esta es la url la urls seria asin

midominio.com/informatica/francia/paris

y si tampoco voy a utilizar la ciudad pues asin:

midominio.com/informatica/francia/

pero si pongo todos los parametros que voy a utilizar juntos siempre me obliga a insertarlos esto, se puede evitar esto con alguna expresion regular?
saludos
  #6 (permalink)  
Antiguo 18/02/2014, 09:20
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 6 años, 3 meses
Puntos: 578
Respuesta: urls amigables con diferentes url originales

Crea varias reglas, cada una que se adapte a tus necesidades, y utiliza la bandera [L] en cada una
  #7 (permalink)  
Antiguo 18/02/2014, 09:25
 
Fecha de Ingreso: noviembre-2011
Ubicación: Valladolid, Yucatan,México
Mensajes: 11
Antigüedad: 8 años
Puntos: 1
Respuesta: urls amigables con diferentes url originales

Por eso compañero, Esto te sirve, por que tu envías los datos como quieras

tu codigo seria asi:

Código HTML:
Ver original
  1. midominio.com/index.php?url=/informatica/francia/paris/4/
o
Código HTML:
Ver original
  1. midominio.com/index.php?url=informatica/francia/paris/
o
Código HTML:
Ver original
  1. midominio.com/index.php?url=informatica/francia/

solo envías un get, uno solo no muchos

y en tu código php al obtener el
Código PHP:
Ver original
  1. $_GET['url']
utilizas este, que lo que hara es formar un array
Código PHP:
Ver original
  1. $url = array_filter(explode('/',filter_input(INPUT_GET,'url',FILTER_SANITIZE_URL)));

por ejemplo para este código seria asi

Código PHP:
Ver original
  1. informatica/francia/paris/4
  2. url[0]=informatica;
  3. url[1]=francia;
  4. url[2]=paris;
  5. url[3]=4;

y para este otro harias esto
Código PHP:
Ver original
  1. informatica/francia/paris/
  2. url[0]=informatica;
  3. url[1]=francia;
  4. url[2]=paris;

y así sucesivamente.
  #8 (permalink)  
Antiguo 18/02/2014, 09:27
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 8 años, 11 meses
Puntos: 10
Respuesta: urls amigables con diferentes url originales

Cita:
Iniciado por PHPeros Ver Mensaje
Crea varias reglas, cada una que se adapte a tus necesidades, y utiliza la bandera [L] en cada una
Perdona pero como se utiliza [L]?
  #9 (permalink)  
Antiguo 18/02/2014, 09:44
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 8 años, 11 meses
Puntos: 10
Respuesta: urls amigables con diferentes url originales

Cita:
Iniciado por angelvargaspool Ver Mensaje
Por eso compañero, Esto te sirve, por que tu envías los datos como quieras

tu codigo seria asi:

Código HTML:
Ver original
  1. midominio.com/index.php?url=/informatica/francia/paris/4/
o
Código HTML:
Ver original
  1. midominio.com/index.php?url=informatica/francia/paris/
o
Código HTML:
Ver original
  1. midominio.com/index.php?url=informatica/francia/

solo envías un get, uno solo no muchos

y en tu código php al obtener el
Código PHP:
Ver original
  1. $_GET['url']
utilizas este, que lo que hara es formar un array
Código PHP:
Ver original
  1. $url = array_filter(explode('/',filter_input(INPUT_GET,'url',FILTER_SANITIZE_URL)));

por ejemplo para este código seria asi

Código PHP:
Ver original
  1. informatica/francia/paris/4
  2. url[0]=informatica;
  3. url[1]=francia;
  4. url[2]=paris;
  5. url[3]=4;

y para este otro harias esto
Código PHP:
Ver original
  1. informatica/francia/paris/
  2. url[0]=informatica;
  3. url[1]=francia;
  4. url[2]=paris;

y así sucesivamente.
Hola vale ahora si que te entiendo perdona y gracias, pero igual sigo viendo un problema que no puedo validar bien cada parametro, yo arriba puse un ejemplo de expresion regular sencilla pero mi idea es limitar mas cada parametro por ejemplos el id solo numeros, un saludo.
  #10 (permalink)  
Antiguo 18/02/2014, 09:50
 
Fecha de Ingreso: noviembre-2011
Ubicación: Valladolid, Yucatan,México
Mensajes: 11
Antigüedad: 8 años
Puntos: 1
Respuesta: urls amigables con diferentes url originales

Puedes utlizar el filter_var

[URL="http://www.php.net/manual/es/function.filter-var.php"]http://www.php.net/manual/es/function.filter-var.php[/URL]

para validar si es un texto,email, id, etc

y el filter_input vara limpiar de codigos indeseables

[URL="http://www.php.net/manual/es/function.filter-input-array.php"]http://www.php.net/manual/es/function.filter-input-array.php[/URL]
  #11 (permalink)  
Antiguo 18/02/2014, 10:06
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 8 años, 11 meses
Puntos: 10
Respuesta: urls amigables con diferentes url originales

Ya te entiendo osea validarlo con php pero igual el htaccess ya se lo saltarian, aunque la idea es buena, igual no sabes a que se referia el amigo con [L]?saludos

Etiquetas: amigables, dominio, htaccess, originales, php, url, urls
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 20:45.