Foros del Web » Programando para Internet » PHP »

Ayuda con mod_rewrite

Estas en el tema de Ayuda con mod_rewrite en el foro de PHP en Foros del Web. Estoy tratando de que mi dirección www.yo.com/directorio.php?id=50 se muestre de la siguiente manera: www.yo.com/directorio/id/50 . He estado investigando por Google y por este foro y ...
  #1 (permalink)  
Antiguo 02/07/2005, 10:51
 
Fecha de Ingreso: mayo-2003
Mensajes: 544
Antigüedad: 14 años, 6 meses
Puntos: 1
Ayuda con mod_rewrite

Estoy tratando de que mi dirección www.yo.com/directorio.php?id=50 se muestre de la siguiente manera: www.yo.com/directorio/id/50.
He estado investigando por Google y por este foro y me han comentado del mod rewrite de php que permite renombrar archivos para mostrar las direcciones url de la manera que quiero, para que google indexe mucho mejor.
Por Internet econtré este artículo: http://www.xlwebmasters.com/modules....&f=doc2&id=390 que anda a la prefección, pero google trata mal a las direcciones tipo www.yo.com/directorio.php/id/50 y entonces la descarté.
Seguí buscando y encontré este artículo que parece tener la solución a mi problema: http://www.neurona.org/alternativa_a...t_post_PHP.php pero no funciona
¿Alguien me podría ayudar a conseguir lo que quiero?

PD: El fichero httpd.conf de Apache ya lo modifiqué a "AllowOverride All" para que me reconozca el archivo .htaccess del último artículo que no me andubo.
PD2: Será posible hacer la dirección de esta forma? www.yo.com/directorio/id/50.php (en donde id es la variable y 50 es el valor.
Gracias.

Última edición por Flashera; 02/07/2005 a las 11:35 Razón: me olide de algo
  #2 (permalink)  
Antiguo 21/07/2005, 15:03
 
Fecha de Ingreso: abril-2005
Ubicación: Guadalajara, Jalisco
Mensajes: 113
Antigüedad: 12 años, 8 meses
Puntos: 0
Código PHP:
<?php 
   
if(isset($PATH_INFO)) { 
      
$vardata explode('/'$PATH_INFO); 
        
$num_param count($vardata); 
        if(
$num_param == 0) { 
            
$vardata[] = ''
            
$num_param++; 
        } 
        for(
$i=1$i<$num_param$i+=2) { 
            $
$vardata[$i] = $vardata[$i+1]; 
        
$total=$total + $$vardata[$i]; 
        } 
    } 
?>
Y listo... nuestras urls funcionarán como siempre, tanto llamándolas de una forma como de otra:

http://www.dominio.com/seccion.php?id=1&texto=Noticias
http://www.dominio.com/seccion.php/id/1/texto/Noticias

¿ Qué es lo que hace este código ? Pues parsea todo lo que sigue al nombre_de_script.php creando los nombres impares como variables y los pares como sus valores... eso es todo. Simple... lo sé, pero funciona. Aqui teneis un código de ejemplo de como usar esta funcionalidad, y explicativo de cómo trabaja. Lo guardais en un fichero variables.php y lo llamais por ejemplo con http://www.url.com/usuario/variables...3/d/4/e/Nombre
  #3 (permalink)  
Antiguo 21/07/2005, 16:10
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Uno de los artículos/tutoriales más sencillos y concisos que he encontrado sobre el uso del mode rewrite de Apache es el de zonaphp.com:
http://zonaphp.com/index.php?modulo=...ion=leer&id=30

Saludos
  #4 (permalink)  
Antiguo 29/07/2005, 02:04
Avatar de RUX
RUX
 
Fecha de Ingreso: enero-2004
Ubicación: Las Palmas de Gran Canari
Mensajes: 566
Antigüedad: 13 años, 10 meses
Puntos: 0
Vaya no me funciona ninguno, ninguno... y estoy usando una web modular como la que explican en www.zonaphp.com pero nada...

SALUDOS
__________________
Rux.es - Sitio Personal | IslaRock.com - Todo Rock
  #5 (permalink)  
Antiguo 23/11/2005, 17:48
Avatar de fullmental  
Fecha de Ingreso: octubre-2004
Ubicación: México DF, Xochimilco
Mensajes: 593
Antigüedad: 13 años, 1 mes
Puntos: 3
flashera lo tuyo es bastante fácil, en tu .httacces tienes que poner lo siguiente
Código:
RewriteEngine on
RewriteRule directorio/(.+) /directorio.php?id=$1 [L]
y listo, ahora hay que llamar los documentos asi:

www.yo.com/directorio/id/50

y atención para este caso tu .httacces debe estar en el root

www.yo.com/.httacces

de otra manera no funciona.
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 00:34.