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

Url amigable

Estas en el tema de Url amigable en el foro de Apache en Foros del Web. Hola a todos, espero que estén bien Tengo dudas sobre crear URL amigables, en realidad soy ignorante al tema, y además soy VAGO, y por ...
  #1 (permalink)  
Antiguo 06/03/2011, 09:58
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Url amigable

Hola a todos, espero que estén bien

Tengo dudas sobre crear URL amigables, en realidad soy ignorante al tema, y además soy VAGO, y por eso siempre busco la manera que me haga pensar menos, jeje, debido a esto se me ocurrió una forma de usar url amigables, pero como soy ignorante al tema quisiera saber si esta forma de hacerlo es correcta o incorrecta, o si no he descubierto nada sino que esto ya se sabía...

En el .htacces pongo lo siguiente:

ErrorDocument 404 /procesar.php?action=Error404

Y en el archivo procesar.php pongo esto

$variable = str_replace('/','',$_SERVER['REQUEST_URI']);




entonces si en el navegador accedo a una url que no existe por ejemplo

http://midominio.com/1520

donde 1520 será algun código de un producto por ejemplo.

Entonces como la url me da error porque no existe, me redirecciona a
procesar.php y es ahí en donde utilizo la url y le quito la barra inclinada y me queda solo el numero 1520, entonces hago una consulta a la base de datos con el código 1520.

Funciona perfectamente, pero quiero saber si esto es correcto y si no me traerá problemas de algún tipo

Desde ya muchas gracias


.
__________________
la la la
  #2 (permalink)  
Antiguo 06/03/2011, 11:40
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Url amigable

Haz hecho un gran lío con url-amigables. Lo que debes hacer es usar el htaccess para que tome el valor y lo envie por el método de GET. Sinceramente es mejor que leas sobre url-amigables antes de que implementes algo que tal vez lo logres con ese método, pero te estás complicando a algo que puede ser (y sinceramente lo es) más sencillo. Te recomiendo que busques material en internet sobre ese tema o simplemente busca en el foro de apache que la realidad del asunto es ahí donde se debe publicar material que tenga que ver con htaccess.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 06/03/2011, 11:44
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: Url amigable

Hola gracias por contestar, he visto algunos tutoriales de .htacces pero todavía no los entiendo muy bien, en el sistema que mostré aca lo hago con solo 2 lineas de codigo una en el .htacces y otra en el archivo php...
yo pregunto :

QUE PUEDE SER MAS SENCILLO QUE ESO???


.voy a seguir estudiando, gracias


.
__________________
la la la
  #4 (permalink)  
Antiguo 06/03/2011, 11:47
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Url amigable

Que toda petición se maneje por el archivo de htaccess y solo con php llamar los valores usando $_GET. De verdad que es más sencillo que lo que estás haciendo.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 06/03/2011, 11:52
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Url amigable

Un ejemplo para que me entiedas mejor:
.htaccess
Código Apache:
Ver original
  1. RewriteEngine On
  2. RewriteRule ([^/]+) index.php?foo=$1 [L,QSA]

index.php
Código PHP:
Ver original
  1. <?php
  2. echo $_GET['foo'];
Con eso toda petición que tu hagas al navegador, como por ejemplo
localhost/algo-va-aqui

Va a imprimir en patalla algo-va-aqui
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #6 (permalink)  
Antiguo 06/03/2011, 11:55
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: Url amigable

bueno eso es lo que yo propongo con este sistema, que todas las url pasen por el htacces, porque ninguna existe, por lo tanto siempre nos va a dar error404 y ahí se redirecciona para procesar.php que desglosa la url y encuentra los valores de las variables.
Ejemplo:

vamos a esta url que no existe:

http://midominio.com/productos/autos

entonces , como es un error 404 se redirecciona con esto
ErrorDocument 404 /procesar.php?action=Error404

hacia procesar.php

y ahí recupero la url con esto:

$_SERVER['REQUEST_URI']

y separo con :

explode("/","$_SERVER['REQUEST_URI']");


entonces me quedan 2 valores "productos" y "autos"
y con eso ya puedo consultar la base.

Se entiende lo sencillo que sería hacerlo?



.
__________________
la la la
  #7 (permalink)  
Antiguo 06/03/2011, 12:07
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Url amigable

Eso, o podrías como quiera leer los valores y enviarlo a procesar sin que se vea un error404,
Código Apache:
Ver original
  1. RewriteEngine On
  2. RewriteRule ([^/]+)/?([^/]+)?/? procesar.php?foo=$1&bar=$2 [L,QSA]
Código PHP:
Ver original
  1. <?php
  2. echo $_GET['foo'] . ' - ' . $_GET['bar'];
En la dirección algo como

localhost/algo/aqui/

Imprime: algo - aqui
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #8 (permalink)  
Antiguo 06/03/2011, 12:36
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: Url amigable

Es que nunca se ve el error 404 porque es redireccionado en el acto, creo que no se entiende lo que quiero decir
__________________
la la la
  #9 (permalink)  
Antiguo 06/03/2011, 19:23
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Tema movido desde PHP a Apache

Etiquetas: php, url, amigables
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 16:57.