How To: Configurar Framework KumbiaPHP en IIS 7.x

 KumbiaPHP es un ligero pero potente framework para aplicaciones PHP el cual se caracteriza por su sencillez al momento de configurarse. Por defecto, al descargar este framework cuenta con las plantillas .htaccess correspondiente a la configuración de reescrituras de URL en Apache, sin embargo en IIS este documento de configuración no es interpretado.

Para configurar KumbiaPHP en IIS 7.x podemos seguir los siguientes pasos:

1. Descargar la extensión para IIS7 llamada URL Rewrite Module . Puedes instalarla también con el Web Platform Installer

2. Luego de instalada, creamos un sitio web en la consola de administración de IIS donde colocaremos a KumbiaPHP

3. Para que kumbiaPHP sea interpretado de forma correcta, debemos activar algunas reglas de reescritura y redirección, especificamente en 4 casos:

Definido estos casos, crearemos estas 4 reglas en un archivo web.config en la raiz del sitio web. Estas reglas deben ser creadas en el siguiente orden segun los casos arriba mencionados:

  • home_rewrite
  • redirect_to_home
  • redirect_to_param
  • param_rewrite

La estructura de nuestro archivo web.config quedaría de la siguiente manera:

<?xml version="1.0" encoding="UTF-8"?>
 <configuration>
     <system.webServer>
         <rewrite>
             <rules>
                 <rule name="home_rewrite" stopProcessing="true">
                     <match url="$" />
                     <conditions>
                         <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                         <add input="{REQUEST_FILENAME}" matchType="IsDirectory" />
                     </conditions>
                     <action type="Rewrite" url="public/index.php" />
                 </rule>
                 <rule name="redirect_to_home" stopProcessing="true">
                     <match url="^public/index.php" />
                     <conditions>
                         <add input="{REQUEST_FILENAME}" matchType="IsFile" />
                         <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                     </conditions>
                     <action type="Redirect" url="/" redirectType="Permanent" />
                 </rule>
                 <rule name="redirect_to_param" stopProcessing="true">
                     <match url="^public/index.php$" />
                     <conditions>
                         <add input="{REQUEST_METHOD}" negate="true" pattern="^POST$" />
                         <add input="{QUERY_STRING}" pattern="^url=([^=&amp;]+)$" />
                     </conditions>
                     <action type="Redirect" url="{C:1}" appendQueryString="false" redirectType="Permanent" />
                 </rule>
                 <rule name="param_rewrite" stopProcessing="true">
                     <match url="^([^/]+)/?$" />
                     <conditions>
                         <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                         <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                     </conditions>
                     <action type="Rewrite" url="public/index.php?url={R:1}" />
                 </rule>
             </rules>
         </rewrite>
     </system.webServer>
 </configuration>

De esta forma podemos comenzar a trabajar con KumbiaPHP en IIS 7.x . Sigo realizando pruebas para validar todos los casos de reescritura a medida que creo mi primera aplicación de prueba. Cualquier duda, comentario, problemas conseguidos con las reglas no dudes en comentarme para seguir iterando en el tema🙂

Saludos,

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s