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:

  1.  
  2.     RewriteEngine on
  3.     RewriteRule ^(.*)pagina/([0-9]+) /handler.php?u=/$1/&p=$2 [L]
  4.  

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,

  1.  
  2.     <?php
  3.         $url="http://example.com".$_REQUEST['u']."?p=".$_REQUEST['p'];
  4.         $ch = curl_init();
  5.         curl_setopt($ch, CURLOPT_URL, $url);
  6.         curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
  7.         echo $content = curl_exec ($ch);
  8.         curl_close ($ch);
  9.     ?>
  10.  

¿Se os ocurre alguna forma mejor para conseguir este resultado?

ningún comentario por el momento

Escribe tu comentario

Puedes utilizar este formulario para escribir tu opinion sobre esta entrada, no existe ningun tipo de limitacion a la hora de enviar opiniones, tan solo sigue unas reglas basicas de cortesia y todos estaremos mas contentos.

Puedes identificarte utilizando OpenID, solo tienes que introducir tu URL OpenID en el siguiente campo y pulsar el boton de validar.





Instrucciones para los comentarios

El simbolo * indica que se trata de un campo obligatorio.

Este sitio usa Markdown junto con Smartypants para educar los textos, tambien esta disponible para los comentarios.

A continuación os muestro algunas de las equivalencias:

  • [enlace de ejemplo](http://example.com/) resulta enlace de ejemplo.
  • **Texto en Negrita**
  • _Italica_
  • > blockquote
  • > > nested blockquote
  • * Esto es un elemento de una lista desordenada (ul)
  • 1. Esto es un elemento de una lista ordenada (ol)

MC Puedes seguir las respuestas a tus comentarios con MyComments.