domingo, 31 de marzo de 2013

Apache2 y URLs amigables (mod_rewrite)

Apache2 incluye un modulo llamado rewrite (mod_rewrite) que sirve para reescribir las direcciones URL (Uniform Resource Locator, es decir, Localizador Uniforme de Recurso y se refiere a la dirección única que identifica a una página web en Internet)

¿Que significa reescribir las URLs? 
Las URLs semánticas o URLs amigables son aquellas URLs entendibles para el usuario. Lejos de las clásicas URLs llenas de variables y números difíciles de recordar, las URLs semánticas o URLs amigable están formadas con palabras relacionadas con el contenido de la página y fáciles de recordar.  

Por Ejemplo:
- URL normal: http://localhost/USUARIODEBIAN/index.php?option=com_content&view=article&id=6&Itemid=147 
- URL amigable: http://localhost/USUARIODEBIAN/mapa-sitio.html


Servidor Apache2
Todos los sitios webs creados en el servidor Apache2 se encuentran en un directorio llamado sites-available (sitios-disponibles), en la ruta /etc/apache2.



El directorio sites-enabled (sitios habilitados) su contenido son enlaces al contenido de la carpeta sites-available






Como hemos mencionado anteriormente cuando creamos un nuevo sitio web en el servidor Apache2, lo hacemos en /etc/apache2/sites-available. Es aquí donde debemos hacer los cambios en la configuración de los sitios.

El directorio sites-enabled es un enlace que apuntan a los archivos de configuración de los sitios web en el directorio sites-available.



  Activar y Desactivar sitios web en Apache2 desde la consola: a2ensite y a2dissite 

Para activar y desactivar sitios web, usamos las instrucciones a2ensite y a2dissite 

- a2ensite ("Apache2 enable site" o "Apache2 habilitar sitio")
- a2dissite ( "Apache 2 disable site" o "Apache 2 desactivar sitio").

Ejemplos:  a2ensite usuariodebian    -     a2dissite usuariodebian

Para que la activación o desactivación surtan efecto, debemos recargar Apache2 con el siguiente comando (como usuario administrador): /etc/init.d/apache2 restart



  Activar y Desactivar módulos de Apache2 desde la consola: a2enmod y a2dismod 

Al igual que los sitios web, los módulos en apache2 se pueden activar o desactivar usando los siguientes comando:

- a2enmod nombre-de-módulo  (activar módulo)
- a2dismod nombre-de-módulo (desactivar módulo)

Para que la activación o desactivación surtan efecto, debemos recargar Apache2 con el siguiente comando: /etc/init.d/apache2 restart

Vamos a cargar el módulo de reescritura de URLs con el siguiente comando (como administrador):

 a2enmod rewrite 



El comando introducido nos informa que el modulo rewrite ya esta activado, y que tenemos que reiniciar el servidor apache2 para que los cambios surtan efectos.



Usamos el siguiente comando para reiniciar el servidor apache2: /etc/init.d/apache2 restart



Ya tenemos activado el modulo rewrite, para las urls amigable, ahora vamos a configurarlo para que acepten las urls amigables.




Configurar la activación del módulo rewrite.

Para ello nos dirigimos al directorio /etc/apache2/sites-available 


aquí encontramos un archivo llamado default,



editamos con nuestro editor de textos preferidos, y buscamos todas las líneas que ponga: AllowOverride None y las cambiamos por: AllowOverride All



Guardamos los cambios que hemos realizado en el editor de texto.
Por último tenemos que reiniciar Apache2, para que los cambios surtan efectos.

/etc/init.d/apache2 restart





.htaccess 

El fichero .htaccess (hypertext access), también conocido como archivo de configuración distribuida, es un fichero especial, popularizado por el Servidor Apache2 que permite definir diferentes directivas de configuración para cada directorio (con sus respectivos subdirectorios) sin necesidad de editar el archivo de configuración principal de Apache.

El fichero .htaccess ofrece un universo de posibilidades, detallamos a continuación los usos más frecuentes. 

- Autorización, Autenticación. Los ficheros .htaccess son usados frecuentemente para especificar restricciones de seguridad para un directorio en particular, de aquí el sufijo "access". 
- El fichero .htaccess se acompaña frecuentemente de otro fichero .htpasswd que guarda usuarios válidos y sus contraseñas.
- Creación de URLs Amigables (semánticas). 
- Los servidores suelen usar el .htaccess para reescribir URLs largas y complejas, en otras más simples y fácilmente recordables.
- Restringir el acceso, Permite bloquear (usando allow/deny) usuarios por su dirección IP y/o dominio e ISPs. También permite bloquear bots y arañas web. 
- SSI Permite el conjunto de directivas SSI. Controlar el comportamiento por defecto del servidor cuando no se especifica ninguna página web.
- Crear redirecciones estáticas Respuestas de error personalizadas
- Cambiar la página que se muestra cuando un error de la parte del servidor ocurre, por ejemplo: HTTP 404 Not Found. MIME types Controlar como el servidor maneja diferentes tipos de archivos.
- Control de Caché. Los ficheros .htaccess permiten a un servidor controlar la caching por medio de los navegadores web y proxies para reducir el uso del ancho de banda , la carga del servidor , y el lag percibido


 Configuración que tenemos que añadir a nuestro fichero .htaccess 
(la gran mayoría de servicios web ya integran y generan el fichero ,htaccess por nosotros)

.






















































1 comentario:

Teucre dijo...

Muchas gracias, me ha servido de guía.

Pero en mi instalación, Debian 8 Jessie, esta en un sitio diferente del indicado, el archivo es apache2.conf y esta en /etc/apache2