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

Ocultar parametros GET (url amigables)

Estas en el tema de Ocultar parametros GET (url amigables) en el foro de Apache en Foros del Web. Hola gente: Tengo una duda y me gustaria saber como puedo oculta los parametros GET en una url amigable reescrita con Rewriterule. Tengo una url ...
  #1 (permalink)  
Antiguo 11/12/2008, 07:49
Avatar de mauricioikem  
Fecha de Ingreso: septiembre-2008
Mensajes: 17
Antigüedad: 16 años, 2 meses
Puntos: 0
Pregunta Ocultar parametros GET (url amigables)

Hola gente:
Tengo una duda y me gustaria saber como puedo oculta los parametros GET en una url amigable reescrita con Rewriterule.

Tengo una url convertida que queda de esta manera:

www.midominio.com/categorias/16/programas/

Pero lo que busco es que quede de esta manera (hevisto en muchos blog que usan de esta manera):

www.midominio.com/categorias/programas/

Este es el que tengo.
Cita:
Rewriterule ^categorias/(.+)/(.+) categorias.php?id=$1&categoria=$2
El problema es que si saco el parametro id, la pagina destino no recibe la variable id.
Existe alguna solucion para ocultar este parametro en la url , pero que la pagina destino pueda recibir la misma.?

Gracias de antemano.
  #2 (permalink)  
Antiguo 25/06/2011, 03:41
 
Fecha de Ingreso: agosto-2009
Ubicación: $this->home = "BCN";
Mensajes: 9
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Ocultar parametros GET (url amigables)

Saludos mauricioikem,

He estado mirando opciones sobre tu consulta y se me ocurre un "apaño" que aunque no es muy sutil, puede ser algo útil.

Se trata de pasar por la url el id que no quieres mostrar previamente por md5 y posteriormente compararlo con el md5 de los id's de tu base de datos o similar.

Código PHP:
<?php
$id 
md5(299);
echo 
"<a href='parametrosOcultos/".$id."/ocultos'>Envia parametros</a><br />";
if(isset(
$_REQUEST['id']))
{
    
$idBuscado 300;
    
// creo un array para emular 300 registros de una tabla de base de datos
    
for($i=0;$i<=$idBuscado;$i++)
    {
        
$arrayIds[$i] = $i;
    }
    
// si se ha recibido el parámetro id
    // lo comparo con los "300" existentes
    
if(isset($_REQUEST['id']))
    {
        
$id $_REQUEST['id'];
        foreach(
$arrayIds as $compara)
        {
            if(
$id == md5($compara))
            {
                echo 
"El id comparado coincide.<br />";
                if(isset(
$_REQUEST['categoria']) == "ocultos")
                {
                    echo 
"Prueba de urls con parametros \"ocultos\" realizada con éxito";
                }
            }
        }
    }
    else 
    {
        echo 
"El id no coincide.<br />";
        exit;
    }
}
?>
En el archivo .htaccess he escrito esta linea

RewriteRule ^parametrosOcultos/(.+)/ocultos$ urls.php?id=$1&categoria=ocultos [L]

He testado este código y funciona

Espero te sirva de ayuda
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 01:10.