Reescritura de URLs en PostNuke 0.8
PostNuke 0.8 está lleno de buenas sorpresas, especialmente en el caso de la reescritura de las URLs que ha sido totalmente re-trabajada. Así PostNuke ofrece varios métodos con el fin de ayudarnos a hacer más atractivos las URLs:

Principios de mod rewrite
Como información, la reescritura de URL es un módulo que se puedes activar en tu Apache para reescribir los enlaces de un sitio con el fin de simplificar su lectura. La idea es que el equipo PostNuke también pensó que este módulo no esta disponible y activado en todos los tipos de servidores (en particular en los servidores de Windows). De hecho, PostNuke ofrece soluciones basadas en re-escritura de URLs ya muy utilizado en los sistemas de gestión, como los blogs. Antes de comenzar, este es el formato de un enlace sin reescritura:
Re-escritura de URLs sin mod rewrite
Esta re-escritura reproduce un sistema de carpetas “virtual” en tu sitio, para que los vínculos tengan este aspecto:
En términos del mecanismo, que es muy simple, cuando el servidor Web recibe una solicitud de un enlace, carga instintivamente la página “index.php”. En este index.php, los parámetros de la petición se recuperan a través de la cabecera (puedes ver que en “phpinfo” hay un campo $ _SERVER['REQUEST_URI'], que corresponde a esta información). Luego estos parámetros se interpretan así: la palabra entre los dos primeros , entre el los dos primeros “/” es el nombre del módulo, entre los dos otros, el nombre de la función. PostNuke ahora sabe el nombre del módulo y la función a utilizar.Puedes pasar parámetros también, por ejemplo, si quieres ver el foro con id=2, el enlace lucirá así: Nota que en la re-escritura de URLs después del nombre del módulo y la función, los parámetros son separados también con “/” en la URL. pero no puedes pasar variables como “index.php?variable=filter/3″.Re-escritura de URLs con mod rewrite
Optimizando la versión anterior
En el ejemplo anterior, todos los enlaces contienen index.php … pero eso es feo, y funcionalmente este archivo no contiene ninguna información útil ni para el módulo a cargar ni para los motores de búsqueda. Ese truco es útil cuando no tienes mod rewrite, pero si tienes mod rewrite habilidato en tu servidor, puedes usar una versión más “ligera” de la re-escritura anterior sin el “index.php”
Aquí un ejemplo
Se cuidadoso si una de tus imágenes es re-escrita de esta manera: <img src=”test.png”> y tu cargas la página /MiModulo/main/. “/MiModulo/main/test.png” será la ruta de la imágen y no aparecerá en el navegador.Modo de archivo
Este modo de re-escritura de URLs es la versión clásica ya usada en las versiones 0.7x de PostNuke, los enlaces re-escritos son una lista de palabras (nombre del módulo, nombre de la función) separados por guiónes. Nota que este modo usa un largo número de reglas de expresión regular para hacer la re-escritura, lo cual puede incremental la carga de tu servidor Web.
Un ejemplo:
Nota que la palabra “module” es incluida sólo para soportar el “viejo estilo” en la carga de módulos.Re-escritura de URLs personalizada
Finalmente aquí está la mejor característica, que te permite personalizar la re-escritura de la URL dependiendo del módulo que es cargado. Sólo hay que crear una función “encodeurl” en el API de usuario del módulo (pnuserapi) que toma de los parámetros la información necesaria para crear la salida a partir del enlace totalmente personalizado.
Después, al cargar cada página, PostNuke envia los parámetros a dicha función “decodeurl” en el API para que se extraiga la información necesaria de la URL codificada y se la pase de en una forma entendible al núcleo de PostNuke.
Puedes encontrar ejemplos del uso de este método en los módulos “Pages” y “News”
Esta característica es interesante poque nos permite manipular las URL, no sólo antes de cargar la página, sino que también después de cargar la página, ejecutar acciones bastante interesantes.Este método te permite- Poner palabras claves en la URL: (veasen los módulos Pages y News)
- Tener una versión única de tus URL re-escritas: En efecto, a través del post-procesamiento tu puedes re-calcular las URLs que no cumplen con el formato deseado, y redireccionarlas al enlace correcto mediante una Redirección permanente (Redirect 301 - “Moved Permanently headers”).

Caso de uso de una re-escritura URL evitando enlaces duplicados
Notas: Un pequeño problema, sin embargo, para el uso de esta reescritura, es que se limita a la URL tipo “user”.
Este artículo es una traducción de ese “how to” puesto publicado en la comunidad Postnuke-Francia.