Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Apache (http://www.forosdelweb.com/f58/)
-   -   No me funciona el Mod Rewrite (http://www.forosdelweb.com/f58/no-funciona-mod-rewrite-584708/)

raquel_sy 09/05/2008 11:30

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!

eft0 09/05/2008 11:39

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.

raquel_sy 09/05/2008 11:53

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.

GatorV 09/05/2008 11:54

Re: No me funciona el Mod Rewrite
 
Tema trasladado a Apache.

a2a2 09/05/2008 12:04

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]

raquel_sy 09/05/2008 12:20

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!

a2a2 09/05/2008 12:43

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.

raquel_sy 09/05/2008 12:59

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!

raquel_sy 09/05/2008 20:53

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.


La zona horaria es GMT -6. Ahora son las 22:32.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.