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

Limpiar url con htaccess

Estas en el tema de Limpiar url con htaccess en el foro de Apache en Foros del Web. Buenas! Tengo un proyecto corriendo, con apoyo de un servidor apache. La cosa es que los enlaces están muy "saturados" ya que, por seguridad, pasan ...
  #1 (permalink)  
Antiguo 04/09/2012, 00:36
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años, 8 meses
Puntos: 33
Limpiar url con htaccess

Buenas!

Tengo un proyecto corriendo, con apoyo de un servidor apache.
La cosa es que los enlaces están muy "saturados" ya que, por seguridad, pasan por GET varios descriptores de seguridad, de manera que me queda algo así

Código:
www.miweb.com/mipagina.php?id=asdasa123eioocobgg(...)
Sé que hay varios métodos para limpiar las url, con lo que podría dejar algo así sin problema:

Código:
www.miweb.com/mipagina/asdasa123eioocobgg(...)
Pero el caso es que me gustaría ir un paso más allá, y en lugar de dejar el id (o cualquier otra cosa cifrada) mostrar otra cosa, como un nombre o algo más descriptivo, como

Código:
www.miweb.com/mipagina/ford-mondeo
El caso es que no sabría cómo hacer esto; he pensado en pasar por GET este descriptor (ford-mondeo en el ejemplo) en otra variable, y mediante htaccess hacer que no salga el id y que salga la otra variable.

Es éste el método correcto, o hay una manera mejor?

Gracias!
  #2 (permalink)  
Antiguo 05/09/2012, 08:49
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: Limpiar url con htaccess

lo que denominás descriptores no son más que variables GET para tu php. Si necesitás de una variable, tenés que pasarla indefectiblemente.´

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 06/09/2012, 00:45
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años, 8 meses
Puntos: 33
Respuesta: Limpiar url con htaccess

Cita:
Iniciado por emprear Ver Mensaje
lo que denominás descriptores no son más que variables GET para tu php
WOW, me has iluminado... fíjate que pensaba que lo que enviaba eran zanahorias transmutadas de la octava dimensión...

No se de que me sirve tu respuesta; las dos frases que has escrito no me aportan nada de información.

Si no sabías qué contestar no haber contestado.

Saludos
  #4 (permalink)  
Antiguo 06/09/2012, 01:07
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: Limpiar url con htaccess

mi respuesta es tan elemental como tu pregunta pero para ni eso te da,
si querés pasar esto
www.miweb.com/mipagina.php?id=asdasa123eioocobgg
tenés que usar esto
www.miweb.com/mipagina/asdasa123eioocobgg
tu paso al "mas alla" implica ocultar "asdasa123eioocobgg", lo cual NO podés hacer si no el php no lo va a recibir, Mejor que aprendas a leer y a preguntar por sobre todo, ya que las obviedades solo se responden con más obviedades, no te ilumines tanto que a lo mejor te consumís
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #5 (permalink)  
Antiguo 06/09/2012, 01:34
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años, 8 meses
Puntos: 33
Respuesta: Limpiar url con htaccess

Pues yo si creo que se podría ocultar, aunque el método que pensé en un primer momento es muy rudimentario. Para hacerlo, haría algo así:

- Se crea una función que recoja la web siempre que haya un parámetro GET.
- Se modifican las llamadas GET, de manera siguiente:

Código:
miweb.com/mipagina.php?elemento=21231545657

pasaría a

miweb.com/mipagina.php?elemento=21231545657&knd=1
- La función recoge "elemento" y "knd", y usando "elemento" busca un campo en la base de datos, dependiendo de "knd".

- Crea un bypass, enmascarando "elemento" en una variable POST, y deja en el GET el valor del campo recuperado.

- Mediante htaccess se formatea la URL, quedando en un formato de URL amigable, con los descriptores de seguridad enmascarados en POST.

El caso es que hacer algo así me parece demasiada tarea para lo poco que es en realidad (a mi parecer)


Hubiera valorado una respuesta de esta índole en una primera instancia, ya que, a pesar que no es puramente lo que he pedido (Es decir, consejos para formatear todo directamente con htaccess) me da un bypass para hacerlo.

Por otra parte, como comprenderás soy programador, es decir, se lo que es una variable GET, una variable POST, y que si no las pasas nadie las puede recibir; no hace falta que me lo recuerdes... lo que no tenía tan claro es si pasando una variable por GET y enmascarandola con una cadena de formato con htaccess el receptor la recibe tal cual.
  #6 (permalink)  
Antiguo 06/09/2012, 07:49
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: Limpiar url con htaccess

Podrías haber formulado este último planteo y ahorrarte la ironía de tu primer respuesta.
Mi indicación fué muy precisa, concreta y oportuna al efecto.
Si querés pasar una variable en una url amigable, el valor de dicha variable debe de aparecer como tal. Cualquier otro "enmascaramiento" como lo denominas, corre por cuenta del php (y este es el foro de Apache), con .htaccess a lo sumo podés pasar algún prefijo extra.
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #7 (permalink)  
Antiguo 07/09/2012, 04:35
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años, 8 meses
Puntos: 33
Respuesta: Limpiar url con htaccess

Resuelto el asunto.

Lo explico de la manera que alguien sin idea de PHP lo pudiera explicar e incluso entender:

de una web como

Código:
miweb.com/pagina?elemento=123456
se pasa a

Código:
miweb.com/pagina/elemento=123456
usando la siguiente línea en .htaccess

Código:
Options +FollowSymlinks
RewriteEngine on

RewriteRule ^/pagina/elemento=(.+)$ http://mipagina.com/pagina?elemento=$1
Adicionalmente, en la ruta de llegada (pagina?elemento=X) hago lo siguiente:

- Recogo la variable GET (elemento)
- Recupero un valor relacionado de la base de datos (por ejemplo, "ford-focus")
- Envío por POST la variable GET recuperada y por POST el dato recuperado de la base de datos, a la siguiente dirección

Código:
miweb.com/pagina/e-ford-focus
Por último, añado en .htaccess

Código:
RewriteRule ^/pagina/e-(.+)$ http;//mipagina.com/pagina?enombre=$1
Así, en la última web redirigida obtengo:

- GET: "ford-focus"
- POST: 123456

O lo que es lo mismo: en GET tengo un descriptor "elegante", y en POST tengo los descriptores de seguridad.


Como ves, emprear, no hace falta entrar ni en PHP ni en nada más. Creo que por incluir un par de referencias a HTML general no hubiera pasado nada, ¿no crees?

Como te dije en otros posts, me hubiera ayudado más una respuesta de este tipo (obviamente no explicado así, pero entrar el concepto de meter algo por post y algo por get, usar una página puente...), que no recordarme qué es una variable GET y demás...

Bueno, se que quizás no es la forma más óptima de arreglar este problema, pero me funciona...
  #8 (permalink)  
Antiguo 07/09/2012, 05:28
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.489
Antigüedad: 22 años, 4 meses
Puntos: 2114
Respuesta: Limpiar url con htaccess

Desde luego no es la forma más óptima. Ya el módulo ReWrite de Apache gasta la suyo, y lo que haces es básicamente duplicar el trabajo.

La respuesta de emprear es correcta. No tienes porqué ofenderte si en un foro de ayuda alguien te explica algo, que a tu parecer puede parecerte básico, pero aquí nadie viene con un diploma de lo que sabe y lo que no, y siempre se intenta ayudar empezando por lo básico.

Y vuelvo a recalcar que la solución más efectiva, es la que ya te dijo emprear, que es la de pasar otro dato por la URL en vez de ID's y cosas así, que es lo que normalmente se hace en cualquier sitio. Y se hace porque es la solución más óptima.
Yo personalmente añado un campo "clave" en la base de datos, que es habitualmente la descripción formateada para URL (minúsculas, espacios por guiones, etc) de forma automatizada y te ahorras todo eso que haces.
  #9 (permalink)  
Antiguo 07/09/2012, 05:29
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.489
Antigüedad: 22 años, 4 meses
Puntos: 2114
Respuesta: Limpiar url con htaccess

Que en realidad es lo mismo que haces tú, pero de una forma más directa, simple y ahorrando recursos al servidor.

Etiquetas: htaccess, limpiar, servidor, url, variables
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 21:16.