Mostrando las entradas con la etiqueta htacess. Mostrar todas las entradas
Mostrando las entradas con la etiqueta htacess. Mostrar todas las entradas

miércoles, 21 de mayo de 2014

Agregar headers de expiración (Add Expires headers)

Los encabezados (headers) de expiración nos sirven para indicar cuando expira un determinado tipo de archivo, esto hace que no sea necesaria una nueva carga del mismo si es que aun no ha expirado. Esto es muy útil para archivos del tipo imagen, vídeo, javascript y hojas de estilo entre otros, ya que nos reduce las solicitudes HTTP lo que nos lleva a la carga de nuestra página en un menor tiempo.

Si tenemos acceso a nuestro servidor podremos editar el archivo de configuración del apache.

Para CentOS, RedHat Fedora
$ sudo nano /etc/httpd/conf/httpd.conf

Para Ubuntu, Debian
$ sudo nano /etc/apache2/apache2.conf

Si no tuviesemos acceso al servidor podemos editar el archivo .htaccess de nuestro sitio o crearlo en caso de que no exista.

$ sudo nano /larutademisitio/.htaccess
Para cualquiera de los casos dentro del archivo, las lineas que debemos agregar o editar son las siguientes:

<IfModule mod_expires.c>
# Habilitar la expiración
ExpiresActive On

# Para las imágenes (1 mes)
ExpiresByType image/gif "access plus 1 months"
ExpiresByType image/png "access plus 1 months"
ExpiresByType image/jpg "access plus 1 months"
ExpiresByType image/jpeg "access plus 1 months"

# Para archivos CSS (1 semana)
# 60*60*24*7, de acuerdo a la modificación del archivo
ExpiresByType text/css M604800

# Para archivos JavaScript (2 meses)
ExpiresByType application/javascript "access plus 60 days"

# Directiva por default para los demás archivos
ExpiresDefault "access plus 1 months"

</IfModule>

Puedes adecuar el tiempo en que expirara cada archivo de acuerdo a tus necesidades, como recomendación es mejor darle mas tiempo a aquellos archivos que no cambien regularmente como las imagenes o javascript.

Posterior a ello, guardamos el archivo y reiniciamos el servicio de apache.

Para Ubuntu, Debian
$ sudo service apache2 restart

Para Centos, RedHat, Fedora
$ sudo service httpd restart

Nota: 
A continuación listamos los tipos de expiración que podemos agregar
  • years
  • months
  • weeks
  • days
  • hours
  • minutes
  • seconds
Así por ejemplo podemos colocar "access plus 4 weeks" para indicar que durara 4 semanas. 

También es posible asignar el tiempo de forma manual multiplicando segundos, minutos, horas, días según sea el caso. Por ejemplo para indicar 30 dias, seria 60(segundos) * 60(minutos) * 24 (horas) * 30 (días) = A2592000.

Ahora podemos usar M o A según se ajuste a nuestra necesidades:

  • M - Tiempo base sería la ultima modificación del archivo
  • A - Tiempo base sería el ultimo acceso del usuario al archivo

lunes, 7 de abril de 2014

Evitar listado de directorios en Apache

Cuando recién instalamos nuestro servidor, por default viene con la característica de permitir el listado de directorios, el prevenirlo, nos permitirá tener una mayor seguridad en nuestro sitio.

Existen varias opciones para ello, una forma "rápida" y sencilla es crear un index (htm, html ó php) en cada directorio y subdirectorio de nuestro sitio, sin embargo podemos tener decenas de ellos lo cual seria una tarea laboriosa y tendríamos que estar agregando un index cada vez que agreguemos uno nuevo. Ahora dependiendo del acceso que tengamos a nuestro servidor tendremos dos opciones que se listan a continuación:

A. Crear un archivo .htaccess

Mediante consola, creamos un archivo llamado .htaccess en la raíz de nuestro sitio y agregamos la siguiente linea:

Options -Indexes

Lo guardamos, y con esto evitaremos que cualquier directorio que se encuentra abajo del principal liste su contenido. Esta opción es útil cuando no tenemos acceso a la configuración de nuestro servidor.

B. Modificar el archivo de configuración de Apache

En esta opción se tiene que modificar el archivo de configuración de nuestro servidor apache (httpd.conf), para ello buscamos en el archivo la linea Options Indexes FollowSymLinks:

# The option directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.2/mode/core.html#options
# for more information.
#
Option Indexes FollowSymLinks

Una vez ubicada la linea agregaremos el caracter (-) a Indexes, quedando de la siguiente forma:

Option -Indexes FollowSymLinks

guardamos el archivo y reiniciamos nuestro servidor apache

# service httpd restart

Ahora probamos poniendo la dirección de nuestro servidor en el navegador e intentar acceder a un directorio como el de imágenes, y nos mostrara un mensaje indicando que no tenemos permiso para listar ese directorio.


Entradas Populares