Menú


Configurar archivo .htaccess

Os dejamos el código de como debería estar configurado un archivo .htaccess, para mejorar la velocidad de carga de vuestra Web. Debajo del códijo, os comentamos cada una de las secciones y lineas.

#Activamos el RewriteEngine para las url amigables
RewriteEngine On
RewriteBase /

#Desactivar envio etiquetas Etag
Header unset Etag
FileETag none

#Redireccionamos cualquier petición HTTP a HTTPS
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

#Forzamos a que todas las urls acaben con /
RewriteCond %{REQUEST_URI} /+[^\.]+$
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]

#Dirigimos los errores 404 a la página 404.php
ErrorDocument 404 /404.php

#********************
#Lineas de cógigo para redirecciones 301
#********************

#********************
#Lineas de cógigo para la gestion de las urls. Este codigo puede ser propio, de prestashop, de wordpress...
#********************

#Habilitamos el HSTS (HTTP Strict Transport Security) informa a los navegadores web que pueden comunicarse con los servidores solo a través de conexiones HTTPS. Por lo tanto, para garantizar que no ofreces contenido inseguro a tu audiencia, recomendamos que implementes la compatibilidad HSTS.
<IfModule mod_headers.c>
Header set Strict-Transport-Security "max-age=10886400;includeSubDomains;preload" #No dejar espacios entre los parametros
</IfModule>

#Compresion de archivos GZIP
<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_item_include file .html$
mod_gzip_item_include file .php$
mod_gzip_item_include file .css$
mod_gzip_item_include file .js$
mod_gzip_item_include mime ^application/javascript$
mod_gzip_item_include mime ^application/x-javascript$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include handler ^application/x-httpd-php
mod_gzip_item_exclude mime ^image/.*
</IfModule>

# 1 YEAR: Cache que expira en 1 año
<FilesMatch "\.(flv|ico|pdf|avi|mov|ppt|doc)$">
Header set Cache-Control "max-age=31536000, public"
</FilesMatch>

# 1 YEAR: Cache que expira en 1 año
<FilesMatch "\.(mp3|wmv|wav|mp4)$">
Header set Cache-Control "max-age=31536000, public"
</FilesMatch>

# 1 MONTH: Cache que expira en 1 mes
<FilesMatch "\.(swf|css|js|cur|svg)$">
Header set Cache-Control "max-age=31536000, public"
</FilesMatch>

# 1 MONTH: Cache que expira en 1 mes
<FilesMatch "\.(jpg|jpeg|JPG|png|gif)$">
Header set Cache-Control "max-age=31536000, public"
</FilesMatch>

# 3 HOUR: Cache que expira en 3 hora
<FilesMatch "\.(txt|xml)$">
Header set Cache-Control "max-age=18000"
</FilesMatch>

# NEVER CACHE - notice the extra directives: Sin cache
<FilesMatch "\.(html|htm|php|cgi|pl)$">
Header set Cache-Control "max-age=0, private, no-store, no-cache, must-revalidate"
</FilesMatch>

# Deflate Compression by FileType: Compresión DEFLATE. Otro tipo de compresión a parte de GZIP
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-shockwave-flash
</IfModule>

Artículos relacionados