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

No me funciona el Mod Rewrite

Estas en el tema de No me funciona el Mod Rewrite en el foro de Apache en Foros del Web. Consigo que me funcione el Rewrite si lo utilizo para que me abra: http://www.miweb.com/index.php?articulo=2 escribiendo http://www.miweb.com/index.php/2 Pero quiero quitar el index.php de la barra de ...
  #1 (permalink)  
Antiguo 09/05/2008, 11:30
 
Fecha de Ingreso: mayo-2008
Mensajes: 8
Antigüedad: 16 años
Puntos: 0
No me funciona el Mod Rewrite

Consigo que me funcione el Rewrite si lo utilizo para que me abra:
http://www.miweb.com/index.php?articulo=2
escribiendo http://www.miweb.com/index.php/2

Pero quiero quitar el index.php de la barra de direcciones, como veo que funcionan muchas páginas, y eso no me funciona. Es decir, el siguiente código me funciona:

Options +FollowSymLinks
RewriteEngine on
Rewriterule ^index.php/(.*)$ index.php?articulo=$1

Pero con este otro código para quitar el "index.php" no me funciona:
Rewriterule ^leer/(.*)$ index.php?articulo=$1

En este último caso si escribo en la barra de direcciones http://www.miweb.com/leer/2 me dice que la página no existe.

Veo que a todo el mundo le funciona así y a mi no, me voy a volver loca. ¿Alguien sabe por qué puede ser?

¡Muchísimas gracias si alguien puede ayudarme!
  #2 (permalink)  
Antiguo 09/05/2008, 11:39
Avatar de eft0  
Fecha de Ingreso: junio-2003
Ubicación: Santiago - Chile
Mensajes: 635
Antigüedad: 20 años, 10 meses
Puntos: 9
Re: No me funciona el Mod Rewrite

Personalmente yo recibo todo, y luego separo, no uno por uno, me explico.

Código:
Options +FollowSymLinks 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
Luego en el index.php escribe:

Código PHP:
$navString $_SERVER['REQUEST_URI'];
$parts explode('/'$navString);
print_r($parts); 
Y vas a ver todo lo que recibes, saludos.
__________________
eft0's stuff! - http://estebanfernandez.net
  #3 (permalink)  
Antiguo 09/05/2008, 11:53
 
Fecha de Ingreso: mayo-2008
Mensajes: 8
Antigüedad: 16 años
Puntos: 0
Re: No me funciona el Mod Rewrite

Gracias eft0 pero lo que quiero es que me abra una página php con un parámetro sin escribir ".php" en la barra de direcciones. Ya he explicado como lo hago y no me funciona.
  #4 (permalink)  
Antiguo 09/05/2008, 11:54
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: No me funciona el Mod Rewrite

Tema trasladado a Apache.
  #5 (permalink)  
Antiguo 09/05/2008, 12:04
 
Fecha de Ingreso: marzo-2008
Mensajes: 303
Antigüedad: 16 años, 1 mes
Puntos: 4
Re: No me funciona el Mod Rewrite

No creo que sea el probelma pero la palabra correcta es "RewriteRule", es decir con dos R mayúsculas. Además la barra es un caracter especial que debe ir "escapado", y si el articulo es obligatorio, en lugar de usar '*', debes usar '+' (para que exija que al menos reciba un caracter)
En resumen, prueba con:
Código:
RewriteRule ^leer\/(.+)$   index.php?articulo=$1  [L]
  #6 (permalink)  
Antiguo 09/05/2008, 12:20
 
Fecha de Ingreso: mayo-2008
Mensajes: 8
Antigüedad: 16 años
Puntos: 0
Re: No me funciona el Mod Rewrite

RewriteRule ^leer\/(.+)$ index.php?articulo=$1 [L]

Con ese código no me funciona. Me dice que no existe la página cuando pongo:
"leer/2" en la barra de direcciones en lugar de "?articulo=2"

en cambio con el código

RewriteRule ^index.php/(.+)$ index.php?articulo=$1

sí que me funciona si pongo en la barra de direcciones index.php/2

Pero mi problema es que yo quiero poder prescindir del ".php" en la direccion

Y no tengo ni idea de por qué no funciona. Porque no veo que nadie tenga ese problema. Siempre veo que quitais el .php y os funciona.

¡Muchísimas gracias!
  #7 (permalink)  
Antiguo 09/05/2008, 12:43
 
Fecha de Ingreso: marzo-2008
Mensajes: 303
Antigüedad: 16 años, 1 mes
Puntos: 4
Re: No me funciona el Mod Rewrite

Pues te recomiendo que vayas paso a paso hasta que veas donde falla.
Por ejemplo puedes empezar probando una a una las siguientes reglas

RewriteRule ^leer$ prueba1.html
RewriteRule ^leer\/(.+)$ prueba2.html
RewriteRule ^leer\/(.+)$ prueba.php?articulo=$1

Por cierto no hace falta que implementes las páginas prueba1.html prueba2.html y prueba.php , solamente son para ver que error te sale.
  #8 (permalink)  
Antiguo 09/05/2008, 12:59
 
Fecha de Ingreso: mayo-2008
Mensajes: 8
Antigüedad: 16 años
Puntos: 0
Re: No me funciona el Mod Rewrite

El error que me da es siempre el mismo. Error 404, archivo no encontrado. Pero el archivo al que lo redirecciono sí que existe.

Me funciona bien si solo uso el rewrite para camuflar los parámetros. Pero si ademas quiero camuflar el archivo .php en el que estoy es cuando me da el error.

Consigo que me funcione esto:dominio.com/index.php/2

pero querría por ejemplo esto:dominio.com/leer/2

¿A alguien le ha pasado alguna vez algo parecido? ¡Gracias!
  #9 (permalink)  
Antiguo 09/05/2008, 20:53
 
Fecha de Ingreso: mayo-2008
Mensajes: 8
Antigüedad: 16 años
Puntos: 0
Re: No me funciona el Mod Rewrite

Gracias eft0 y gatorV

Al final lo he solucionado de una forma chapucera.

Antes ponía por ejemplo:

RewriteRule ^articulo/(.*)\.htm$ espverarticulo.php?elegido=$1
y no me funcionaba. Decía que no existe al escribir ...articulo/2.htm

Ahora me funciona poniendo esto:

RewriteRule ^articulo/(.*)\.htm$ /espverarticulo.php?elegido=$1

Con / delante de la direccion real. ¿Por qué? No lo se.
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 05:20.