jueves, 5 de enero de 2012

Optimizar nuestra web alojada en 1and1

En esta publi, os contaré como optimizar nuestra web alojada en 1and1.
Habilitar compresión gzip y la fecha de expiración de cache.
Debemos crear 3 archivos:

.htaccess
php.ini
contentHeader.php

En el .htaccess pondremos lo siguiente cambioando el nombre del dominio.

1 |  RewriteEngine On
2 |  RewriteCond %{HTTP_HOST} ^dominio.es$ [NC]
3 |  RewriteRule ^(.*)$ http://www.dominio.es/$1 [R=301,L]
4 |  <ifmodule mod_expires.c>
5 |  ExpiresActive On
6 |  ExpiresDefault A30600
7 |  <filesmatch ".(jpg|JPG|gif|GIF|png|css|ico|js|gz|gzip|swf)$">
8 |  ExpiresDefault "access plus 7 day"
9 |  </filesmatch>
10|   </ifmodule>
11|   AddType x-mapp-php5 .html .htm .js .css
12|   AddHandler x-mapp-php5 .html .htm .js .css


En el php.ini podremos lo siguiente:

1| zlib.output_compression = On
2| zlib.output_compression_level = 9
3| allow_url_fopen = On
4| auto_prepend_file = [ruta fisica]/contentHeader.php
5| session.use_cookies = Off

La ruta fisica viene determinada de esta forma
/homepages/36/d395444500/htdocs

Y por último el contentHeader.php, el cual queda asi:

<?php
$pathinfo = pathinfo($_SERVER['PHP_SELF']);
$extension = $pathinfo['extension'];
if($extension == "css")
{
header("Content-type: text/css");
header("Cache-Control: max-age=604800, public");
header("Last-modified: 2011-09-24 20:10");
}
if($extension == "js")
{
header("Content-type: text/javascript");
header("Cache-Control: max-age=604800, public");
header("Last-modified: 2011-09-24 20:10");
}
if($extension == "html")
{
header("Content-type: text/html");
}
?>

Aclarar que el archivo php.ini lo debemos mandar a cada carpeta donde se encuentren los archivos que deseamos comprimir.

8 comentarios:

  1. el contentHeader no carga los estilos css tengo prestashop intalado

    ResponderEliminar
  2. Hola buenas tardes estuve todo el día intentando de diversas maneras poder comprimir el contenido de mi página web pero nada funcionaba, hasta que llegue a tu blog te agradezco muchísimo tu publicación porque me ayudo a resolver mi problema.

    ResponderEliminar
  3. Killo
    Muchas gracias por el post.
    Me he comido la cabeza con este rollo un día entero.
    Te mereces una ola


    ResponderEliminar
  4. Una pregunta, con el hosting compartido no doy encontrado en el panel de control el usuario, haciendo pruebas con el htaccess controlo el caché creo, es suficiente?

    ResponderEliminar
  5. Un 10 para ti!
    Llevaba toda la noche buscando y los de 1and1 solo me dijeron que no podía usar los módulos que hay en apache... que tenía que usar zlib.
    Tras una búsqueda rápida en la web doy con tu solución y todo perfecto.
    Gracias!!

    ResponderEliminar
  6. Hola, yo este método lo he usado y funciona. Pero al tener mi web en un Wordpress, me deshabilita los css y js de mi backend y no consigo ver una solución ahora mismo.

    ¿Alguno sabría como solucionarlo?

    Muchas gracias

    ResponderEliminar
    Respuestas
    1. Hola Bruno, puedes hacerlo de esta forma:
      En la primera linea del header.php de tu theme copia y pega
      <?php ini_set('zlib.output_compression', 'on'); ini_set('zlib.output_compression_level', '6'); ?>

      Eliminar
  7. Este comentario ha sido eliminado por el autor.

    ResponderEliminar