domingo, 30 de junio de 2013

Reglas de reescritura - Parte 1: Introducción

Vamos a ver a lo largo del tutorial como podemos realizar numerosas acciones y tareas gracias a las reglas de reescritura. Sin embargo tres de los mayores propósitos son:
  • Ocultar la funcionalidad de PHP y por lo tanto exponer menos las partes internas del sitio. 
  • Restringir el acceso.
  • Crear URLs limpias y legibles que son más fáciles de recordar. Y ayudar de esta manera a los motores de búsqueda. 
Considerando estos dos ejemplos

http://ejemplo.com/index.php?product_id=7
http://ejemplo.com/7/

Podemos ver como la segunda URL es más fácil de entender, ya que es más amigable tanto para el usuario como para los motores de búsqueda. Además en esta segunda URL se ha escondido que el sitio web utiliza PHP. Lo que no nos va a proporcionar ningún tipo de seguridad pero deja menos pistas.

Por desgracia, el formato de la última URL no puede ser fácilmente comprendido por un servidor sin un poco de trabajo por nuestra parte. Cuando se hace una solicitud de esa URL, el servidor tiene que encontrar la manera de procesarla para que sepa lo que debe enviar de vuelta al usuario. Por lo tanto definiremos la reescritura de URL como la técnica utilizada para "traducir" una URL  en otra que el servidor puede entender.

El modulo de Apache necesario para llevar acabo la reescritura es mod_rewrite. Por lo que trás haber instalado apache [enlace] podemos comprobar que módulos tenemos activos mediante el siguiente comando:

 /usr/sbin/apache2ctl -t -D DUMP_MODULES   

Lista de módulos instalados en el servidor PHP

En mi caso, y probablemente en cualquier instalación normal de Apache, el módulo aparecerá activado por defecto. Pero si no es el caso, podemos utilizar el siguiente comando para indicarle a Apache que queremos utilizarlo:

 sudo a2enmod rewrite   

Además recordar que tras cualquier cambio en la configuración de Apache hay que reiniciarlo:

 sudo /etc/init.d/apache2 reload  

o

 sudo service apache2 reload   

Las reglas de reescritura se deben definir en los ficheros de configuración de Apache (httpd.conf) o, en el caso que este activada la capacidad de reescritura, en un archivo .htaccess localizado en el directorio del servidor web donde se quiere que tenga efecto.


Entradas relacionadas

1 comentario:

  1. Gracias amigo por tan buena guía, a veces las fuentes oficiales son algo engorrosas o extensas, o simplemente porque a veces no están escritas en nuestra lengua materna sino en inglés y ello representa un desafío para los que no saben nada o apenas estamos aprendiendo inglés. En resumen, gracias por tu aporte, claro y conciso. Saludos desde Colombia!

    ResponderEliminar