Foros del Web » Programando para Internet » PHP »

duda con una url amigable

Estas en el tema de duda con una url amigable en el foro de PHP en Foros del Web. Hola! Estoy trabajando una aplicacion en php y necesito ayuda con las urls amigables ya que no dan el resultado que necesito esto e slo ...
  #1 (permalink)  
Antiguo 25/04/2011, 20:30
 
Fecha de Ingreso: febrero-2011
Ubicación: cali, valle del cauca
Mensajes: 158
Antigüedad: 13 años, 2 meses
Puntos: 8
Pregunta duda con una url amigable

Hola!

Estoy trabajando una aplicacion en php y necesito ayuda con las urls amigables ya que no dan el resultado que necesito esto e slo que tengo
Código Apache:
Ver original
  1. Options +FollowSymLinks
  2. RewriteEngine on
  3. #4 variables
  4. Rewriterule ^(.*)/(.*),(.*)/(.*),(.*)/(.*),(.*)/(.*),(.*)/$ $1.php?$2=$3&$4=$5&$6=$7&$8=$9
  5. #3 variables
  6. Rewriterule ^(.*)/(.*),(.*)/(.*),(.*)/(.*),(.*)/$ $1.php?$2=$3&$4=$5&$6=$7
  7. #2 variables
  8. Rewriterule ^(.*)-(.*)_(.*)-(.*)_(.*)$ $1.php?$2=$3&$4=$5
  9. #1 variable
  10. Rewriterule ^(.*)/(.*),(.*)/-$ $1.php?$2=$3


en el .htaccess y esto en el php
Código PHP:
Ver original
  1. <?php
  2. /***
  3. Archivo descargado de http://willy.tiperu.com/
  4. ***/
  5. //Iniciamos o continuamos la sesión encargada de evitar el bucle infinito
  6. session_name("url_amigable");
  7. //Almacenamos datos del server, script y variables (pasadas por GET)
  8. $Server=$_SERVER['SERVER_NAME'];
  9. $Script=$_SERVER['PHP_SELF'];
  10. $Variables=$_SERVER['QUERY_STRING'];
  11.  
  12. //Verificando si tiene variables por GET
  13. //y no se han pasado datos mediante un form por POST
  14. //ya q al redireccionar un  post puede ocasionar errores.
  15. //Tambien verificamos que la variable de sesión 'Listo'
  16. //sea diferente a 1, esto nos eviara un bucle infinito.
  17.  
  18. if(!empty($Variables) && $_SERVER['REQUEST_METHOD']=='GET' && $_SESSION['Listo']!=1){
  19.     //Si tiene variables pasadas por GET se procede a hacer el cambio.
  20.     //1. Agrupando $Variables por "variable=valor" en el array $Variable.
  21.     $Variable=explode("&",$Variables);
  22.     //2. Sustituyendo "=" por "," y concadenandolo en variable $Amigable.
  23.     for($i=0;$i<count($Variable);$i++){
  24.         $Amigable.="-".str_replace("=","_",$Variable[$i]);
  25.     }
  26.     //3. Quitando la extension ".php" a $Script para simular un directorio.
  27.     $Dir=str_replace(".php","",$Script);
  28.     //4. Generando la URL Amigable.
  29.     $URL_AMIGABLE="http://".$Server.$Dir.$Amigable."/";
  30.     //5. Colocando la variable de sesión 'Listo' a 1 para evitar el bucle infinito
  31.     // al redireccionar la web.
  32.     $_SESSION['Listo']=1;
  33.     //6. Redireccionando a la url amigable
  34.     header("Location: $URL_AMIGABLE");
  35.     //7. Exit hará que culmine hasta este punto el script, si no estuviera 'exit'
  36.     // el script continuaría ejecutándose y llegaría hasta el final del mismo, es decir,
  37.     // a la parte donde colocamos a la variable de sesión 'Listo' en cero, originandose
  38.     // entonces un bucle infinito.
  39.     exit;
  40. }
  41. //Cambie $_URL_BASE por la ruta raiz de su web, ya que al simular la url amigable
  42. //directorios, hará que no muestre adecuadamente los origenes de los recursos que
  43. //llama su página web.
  44. $_URL_BASE="http://".$Server."/zl/1030.php";
  45. ?>


y de esta url:

http://localhost/z/1030.php?cod=3&usuario=1


me da esta:

http://localhost/z/1030-cod_3-usuario_1/

y lo que sucede es que necesito que me muestre ademas de eso el nombre del producto:

http://localhost/z/1030-cod_3-usuari...-portatil.html

eso es todo, por que mando el nombre del anuncio y me sale solamente:

http://localhost/z/1030-cod_3-usuario_1/vendo.html

Y no se ya como hacerlo, este es el unico codigo que me a generado el resultado que quiero asi que quisiera trabajar sobre el muchas gracias

Etiquetas: 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 12:27.