URLs amigables y paginacion con smarty
- Jul
- 14
escribe tu comentario! 205 palabras - 1 hits
como utilizar curl para trabajar con urls amigables
Esta ultima actualizacion del cms me ha demostrado que es una mala idea modificar los ficheros del sistema.
Concretamente había modificado el mt.php para poder utilizar urls amigables en las secciones que están paginadas. Al aplicar los cambios en el nuevo mt.php solo he conseguido romper del todo la publicacion dinámica.
Al final he decidido dejar el script tal y como viene en esta versión optando por buscar otra solución para mantener las urls como quiero.
El método que utilizo ahora me resulta mas limpio y no tengo que modificar ningún script interno. Básicamente uso una redirección con Apache y mod_rewrite enviando las peticiones a un script que las procesa.
El metodo me permite utilizar urls del tipo http://alexsancho.name/pagina/2/ que internamente se procesan como http://alexsancho.name/?p=2.
La redirección se activa con la siguiente regla:
- RewriteEngine on
- RewriteRule ^(.*)pagina/([0-9]+) /handler.php?u=/$1/&p=$2 [L]
Desglosando la regla podemos ver que estamos redirigiendo todas las urls que contengan “pagina” seguido de un numero hacia el script handler.php añadiendo el numero y el path como variables.
El script handler.php básicamente realiza una petición con curl a la url original con los parámetros que le pasan,
- <?php
- $url="http://example.com".$_REQUEST['u']."?p=".$_REQUEST['p'];
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
- curl_close ($ch);
- ?>
¿Se os ocurre alguna forma mejor para conseguir este resultado?
ningún comentario por el momento