Buenas compañeros:
Veréis mi situación. Quiero usar el mod rewrite para reescribir las url dinamicas de mi web construida en php a html. He conseguido ya reescribirlas, por ejemplo, pasar de
index.php?elinks/info&id=253 a
elink-253.html, pero al pinchar en el enlace me sale un mensaje de error diciendo que no se puede encontrar dicho documento.
El código que añadí hasta ahora es el siguiente. Al principio del todo en el
index.php puse esto:
Código PHP:
<?
ob_start();
function replace_for_mod_rewrite(&$s)
{
$urlin = array("'index.php\?elinks/info&id=([0-9]*)'");
$urlout = array("elink-\\1.html");
$s = preg_replace($urlin, $urlout, $s);
return $s;
}
?>
Y al final del
index.php esto:
Código PHP:
<?
$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
?>
Como podéis ver está sacado del mod para PHP-NUKE. Con ésto tal cual, las url se reescriben perfectamente. Ahora bien, en el archivo .htaccess pongo lo siguiente:
Código:
#Activamos el mod_rewrite
RewriteEngine on
RewriteRule ^elink-([0-9]*).html /index.php?elinks/info&id=$1
Que me parece sirve para si solicitas la url en html te redireccione a la correcta... pero no funciona. Ya he hecho unos cuantos cambios poniendo y quitando cosas, intentando buscar información en google, pero no hay manera no me acaba de salir. Tengo la sensación estar a un paso de lograrlo, pero no acabo de darlo.
Ya os digo, solo falta que cuando pinches en la url ya reescrita, salga la ficha. Esta tarea, pienso yo, es la del .htaccess (corregidme si me equivoco), pero no me sale. Quizás el código esté mal, y en ese caso no se que es...
Venga, gracias anticipadas.
Saludos.