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

Recibir variables como directorios en URL

Estas en el tema de Recibir variables como directorios en URL en el foro de Apache en Foros del Web. De verdad compañeros de FDW, ya no sé qué hacer para lograr hacer funcionar mi aplicación en PHP. He estado con esto desde hace semanas ...
  #1 (permalink)  
Antiguo 08/06/2011, 14:44
 
Fecha de Ingreso: marzo-2010
Mensajes: 151
Antigüedad: 14 años
Puntos: 0
Recibir variables como directorios en URL

De verdad compañeros de FDW, ya no sé qué hacer para lograr hacer funcionar mi aplicación en PHP. He estado con esto desde hace semanas y bueno no puedo, ya estoy muy desesperado, espero en verdad me puedan ayudar :)

Necesto recibir variables por GET desde PHP, pero envíandolas como directorios, es decir así:
http://localhost/portafolio/Juan/30/

El archivo portafolio.php está en raíz y es el siguiente:
Código PHP:
<?php echo "El usuario es: ".$_GET['user']; ?>
El archivo .htaccess se encuentra en raíz y es el siguiente:
NOTA: Este únicamente recoge una variable, pero necesito que sean dos
Código:
Options +FollowSymLinks
Options +Indexes
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteBase /
RewriteRule ^portafolio/(.+)$ portafolio.php?user=$1
Al escribir la dirección http://localhost/portafolio/Juan No muestra en pantalla el nombre de Juan como se supone tendría que hacerlo, sólo muestra la página como "El usuario es: "

Datos adicionales:
-Estoy trabajando en localhost con Ubuntu 10.10 con Apache 2 y PHP5
-El módulo mod_rewrite está activado según phpinfo()



Uploaded with ImageShack.us
  #2 (permalink)  
Antiguo 09/06/2011, 13:10
 
Fecha de Ingreso: marzo-2010
Mensajes: 151
Antigüedad: 14 años
Puntos: 0
Respuesta: Recibir variables como directorios en URL

Por favor! Ayúdenme, llevo semanas con este problema y no puedo solucionarlo, por favor
  #3 (permalink)  
Antiguo 18/06/2011, 01:14
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Recibir variables como directorios en URL

Probá con esta

Código Apache:
Ver original
  1. Options +Indexes +FollowSymLinks
  2. RewriteEngine On
  3. RewriteCond %{SCRIPT_FILENAME} !-d  
  4. RewriteCond %{SCRIPT_FILENAME} !-f
  5. RewriteRule ^portafolio/user/([^/]*)$ /portafolio.php?user=$1 [L]


y las urls
<a href="/portafolio/user/juan">Juan</a>
<br>
<a href="/portafolio/user/pedro">Pedro</a>

demo

http://mdr2.emprear.com

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #4 (permalink)  
Antiguo 22/06/2011, 17:44
 
Fecha de Ingreso: marzo-2010
Mensajes: 151
Antigüedad: 14 años
Puntos: 0
Respuesta: Recibir variables como directorios en URL

Ya veo en el ejemplo que sí funciona, el problema es que me añadiría de más /user/ y necesito que sólo sea potafolio/juan.
Muchas gracias emprear, Saludos!!
  #5 (permalink)  
Antiguo 22/06/2011, 18:06
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Recibir variables como directorios en URL

Bueno, deberia funcionar igual


Código Apache:
Ver original
  1. Options +Indexes -Multiviews +FollowSymLinks
  2. RewriteEngine On
  3. RewriteCond %{SCRIPT_FILENAME} !-d  
  4. RewriteCond %{SCRIPT_FILENAME} !-f
  5. #RewriteRule ^portafolio/user/([^/]*)$ /portafolio.php?user=$1 [L]
  6. RewriteRule ^portafolio/([^/]*)$ /portafolio.php?user=$1 [L]

Ahi lo modifique en la web para que veas
Fijate que los dos primeros links ahora generan un error 404

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #6 (permalink)  
Antiguo 22/06/2011, 18:53
 
Fecha de Ingreso: marzo-2010
Mensajes: 151
Antigüedad: 14 años
Puntos: 0
Respuesta: Recibir variables como directorios en URL

Mmmmm...carai! de plano no. inclusive modifique las variables de user a nombre-usuario y lo cambie en todo (por no dejar) Pero no funciona, ya no sé qué hacer
  #7 (permalink)  
Antiguo 22/06/2011, 19:04
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Recibir variables como directorios en URL

No se que decirte, habria que ver toda tu aplicación, mi ejemplo, que sí funciona como podes ver, es muy básico. Quizás algún otro componenente de tu dearrollo este interfiriendo.

Con mod_rewrite se hacen cosas muy complejas, pero esta es relativamente sencilla

en
RewriteRule ^portafolio/([^/]*)$ /portafolio.php?user=$1 [L]

lo que esta en negrita representa $1 y la ruta /portafolio/loquepongas en tus links, redirige
/portafolio.php?user=loquepongas, entonces tu script en portafolio.php

puede reconocer a $_GET['user']

Revisa bien los paths, no se que pueda estarte afectando
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #8 (permalink)  
Antiguo 22/06/2011, 19:25
 
Fecha de Ingreso: marzo-2010
Mensajes: 151
Antigüedad: 14 años
Puntos: 0
Respuesta: Recibir variables como directorios en URL

Pues le he intentado y no puedo, yo creo que es por el Localhost y qeu no configuré nada, sólo activé el módulo...eso me imagino.
Porque algo raro ocurre que si borro el .htacces siguien funcionado como http://localhost/portafolios
como si el access siguiera activo.
De cualquier modo mil gracias por tu paciencia, seguiré intentando con esto y a ver si me permites enviartemi correo por MP para ver qué ocurre. Gracias y saludos!!
  #9 (permalink)  
Antiguo 22/06/2011, 19:38
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Recibir variables como directorios en URL

Un par de detalles

1.
el nombre del archivo es .htaccess y no .htacces , a lo mejor fue solo un error de tipeo


2.
El modulo necesario a habilitar es mod_rewrite (descomentando el # en el archivo de configuración)

3. para que funcione mod_rewrite en htaccess, debe tambien estar habilitado, lo cual debe hacerse al inicio , es el valor FollowSymLinks para la directiva Options. por lo que un ejemplo de .htaccess válido sería


Código Apache:
Ver original
  1. Options -Indexes -Multiviews +FollowSymLinks
  2. RewriteEngine On
  3. RewriteCond %{SCRIPT_FILENAME} !-d  
  4. RewriteCond %{SCRIPT_FILENAME} !-f
  5. #RewriteRule ^portafolio/user/([^/]*)$ /portafolio.php?user=$1 [L]
  6. RewriteRule ^portafolio/([^/]*)$ /portafolio.php?user=$1 [L]

Saludos y suerte
PD: y necesitaría un favor, si vas a estar en linea 15 minutos más, avisame... gracias
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: htaccess
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 06:00.