Foros del Web » Programando para Internet » PHP »

El famoso mod_rewrite

Estas en el tema de El famoso mod_rewrite en el foro de PHP en Foros del Web. Hola a todos... Llevo mucho tiempo intentando que el mod_rewrite reescriba mis urls. Ya no se ni que hacer, les dejo aqui los codigos a ...
  #1 (permalink)  
Antiguo 22/10/2003, 11:04
 
Fecha de Ingreso: agosto-2001
Ubicación: Gran Canaria (España)
Mensajes: 430
Antigüedad: 16 años, 4 meses
Puntos: 0
El famoso mod_rewrite

Hola a todos...

Llevo mucho tiempo intentando que el mod_rewrite reescriba mis urls. Ya no se ni que hacer, les dejo aqui los codigos a ver si ustedes me pueden echar una manilla.

Gracias a todos.

.htacces
Código PHP:
Options SymLinksifOwnerMatch 
RewriteEngine on 
Rewritebase 


RewriteRule ^index.htmlindex.php

#News
RewriteRule ^news([1-9][0-9]*).htmlnews.php?id=$1

#Affiliates
RewriteRule ^affiliates.htmlaffiliates.php

#AddNews
RewriteRule ^addnews.htmladdnews.php 
index.php
Código PHP:
<?
function replace_for_mod_rewrite(&$s) {
$urlin = array("'(?<!/)news.php\?id=([0-9]*)'","'(?<!/)affiliates.php'","'(?<!/)addnews.php'");

$urlout = array("news\\1.html","affiliates.html","addnews.html",);

$s preg_replace($urlin$urlout$s); 
return 
$s


echo 
"<html><head><title>Mod_Rewrite</title></head><body>";
echo 
"<a href=news.php?id=1>News 1</a><br>";
echo 
"<a href=affiliates.php>Affiliates</a><br>";
echo 
"<a href=addnews.php>Add News</a><br>";
echo 
"</body></html>";

$contents ob_get_contents(); // store buffer in $contents 
ob_end_clean(); // delete output buffer and stop buffering 
echo replace_for_mod_rewrite($contents); //display modified buffer to screen 
?>
Agradeceria una ayudita con este tema...

Gracias
  #2 (permalink)  
Antiguo 22/10/2003, 12:05
Nok
 
Fecha de Ingreso: abril-2001
Mensajes: 302
Antigüedad: 16 años, 7 meses
Puntos: 0
Bueno, como primera medida tendrias que ver donde ubicas tu .htaccess?, yo las pruebas que he realizado y que me ha funcionado es ubicarlo un nivel superior a tu public_html o cualfuera tu document_root.
Fijate si puede ser eso, y si no, cual es el problema exactametne?
o sea, cual es el comportamiento.

Saludos.
Nok.
__________________
La casa de Noktemplate.
Zonaphp.com - Php en español.

¿Que esperas de NokTpl 2? Deja tu comentario.

Blog
Mas o menos asi .
  #3 (permalink)  
Antiguo 22/10/2003, 12:38
 
Fecha de Ingreso: agosto-2001
Ubicación: Gran Canaria (España)
Mensajes: 430
Antigüedad: 16 años, 4 meses
Puntos: 0
Gracias por la respuesta Nok,

Vamos por pasos:

- El comportamiento es precisamente el problema, es decir, no existe comportamiento... simplemente no hace nada, las url siguen viendo normal www.midominio.com/news.php?id=123 cuando tendria que ser www.midominio.com/news123.html

- Actualmente el .htaccess esta situado en la misma carpeta que los archivos, en el document root o public_html (o como quieras llamarlo). Y no funciona.

- Si subo un nivel el archivo .htaccess, es decir fuera del document root (una carpeta mas arriba que los ficheros news.php, affiliates.php y addnews.php), el comportamiento es el mismo... no hace nada y la urls siguen igual...

La verdad es que ahora estoy perdido... no se si el error esta en el archivo .htaccess o en el index.php...

Bueno espero haberme explicado....

Muchas gracias de nuevo Nok...

Por cierto he leido tu articulo al respecto y es muy bueno...

Un saludo

Última edición por daniph; 22/10/2003 a las 12:40
  #4 (permalink)  
Antiguo 22/10/2003, 13:24
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 16 años, 1 mes
Puntos: 68
daniph., yo estuve haciendo funcionar el Mod_rewrite ayer en mi Máquina windows y para que un sitio me aceptara los .htaccess, tienes que asegurarte que el apache esté configurado para aceptar "reconfiguraciones" con .htaccess, sino los ignora olímpicamente.

Para eso, en el VirtualHost del sitio en particular que quise utilizar Mod_rewrite con .htaccess, tuve que hacer lo siguiente :

<VirtualHost *>
Servername loquesea
DocumentRoot c:\home\tusitio

<Directory c:\home\tusitio>
AllowOverride All
</Directory>
</VirtualHost>

Con eso le dices que en el directorio c:\home\tusitio, quieres que el apache deje ser reconfigurado mediante .htaccess.

Reinicias y pruebas.

Saludos.
__________________
Tutoriales Photoshop | Web-Studio.com.ar
Artículos PHP | ZonaPHP.com
  #5 (permalink)  
Antiguo 22/10/2003, 14:14
 
Fecha de Ingreso: agosto-2001
Ubicación: Gran Canaria (España)
Mensajes: 430
Antigüedad: 16 años, 4 meses
Puntos: 0
Hola WebStudio, gracias por la respuesta...

Realmente ni lo estoy probando en local sino directamente en el servidor donde esta alojado el site... la verdad es que no se si soporta configuraciones el apache con .htaccess, lo unico que he hecho en este server con .htaccess es proteger directorios...

Voy a preguntar al admin del host... a ver que me dice...

Gracias

Seguire con el tema... unos minutos please....
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 14:28.