- ¿Qué es .htaccess?
- .htaccess ejemplos
- Redirigir a los usuarios a una página de error específica
- Añadir una cabecera y valor personalizados
- Bloqueo de usuarios basado en la IP
- Bloqueo de referenciadores (protección de hotlinks)
- Añadir tipos MIME
- Aprovechando la caché del navegador
- Habilitar Gzip
- Negar los métodos de solicitud HTTP
- Realizar redirecciones 301
- Habilitar CORS
¿Qué es .htaccess?
El archivo .htaccess
(también conocido como archivo de acceso al hipertexto) se utiliza para definir configuraciones específicas para los servidores web que funcionan con Apache. Este archivo de configuración afecta al directorio en el que se almacena, así como a todos los subdirectorios dentro de ese directorio. Por ejemplo, si el archivo .htaccess
se encuentra dentro del directorio raíz, afectará a todo el sitio. Por otro lado, si el archivo se encuentra en un directorio específico, sólo afectará a ese directorio y a cualquier subdirectorio dentro de él.
Algunas plataformas CMS como WordPress y Drupal también vienen con archivos .htaccess
para permitirle especificar ciertas configuraciones que son aplicables únicamente a ese sitio. El archivo .htaccess
se puede utilizar para lograr una variedad de cosas, incluyendo:
- Realizar redirecciones
- Personalizar las páginas de error
- Restringir a los usuarios en función de la IP
- Añadir tipos MIME
- Configurar las cabeceras HTTP
- Proteger con contraseña ciertas carpetas
El archivo .htaccess
puede utilizarse para conseguir mucho más, sin embargo, la lista anterior está entre los usos más populares de .htaccess
. La sección a continuación se describen varios ejemplos de .htaccess
y cómo se puede utilizar dentro de su propio sitio.
.htaccess ejemplos
Hay una gran cantidad de posibilidades de configuración que se puede lograr dentro de la .htaccess
archivo. La siguiente lista es algunos de los ejemplos más utilizados.
Redirigir a los usuarios a una página de error específica
Basado en el código de estado que devuelve un archivo o página en particular, puede redirigir al usuario a una página de error personalizada. El ejemplo siguiente muestra algunas variaciones que puede utilizar. Cada una depende del código de estado que se devuelve.
ErrorDocument 403 /forbidden.htmlErrorDocument 404 /notfound.htmlErrorDocument 500 /servererror.html
Añadir una cabecera y valor personalizados
También se pueden añadir cabeceras HTTP personalizadas a través del archivo .htaccess
. Hay algunas opciones de sintaxis, como set
que reemplazará cualquier cabecera anterior que tenga el mismo nombre, add
que añadirá la cabecera incluso si existe otra con el mismo nombre. Visite la guía de cabeceras de página de Apache para obtener más información.
Header set X-Custom "Custom Value"
En el ejemplo anterior, el texto X-Custom
corresponde a la cabecera HTTP que se devolverá en la respuesta HTTP, mientras que el texto Custom Value
corresponde al valor de esta cabecera en particular.
Bloqueo de usuarios basado en la IP
Para fines de seguridad, puede bloquear a los usuarios en función de su IP dentro del archivo .htaccess
. En el siguiente ejemplo, hay dos IPs que están bloqueadas. También podemos decidir no incluir el último dígito de la dirección IP, lo que hará que se bloqueen todas las IPs que contengan los tres primeros dígitos.
order allow,denydeny from 255.x.x.xdeny from 123.x.x.xallow from all
Bloqueo de referenciadores (protección de hotlinks)
El bloqueo de referenciadores, también conocido como protección de hotlinks, es un método utilizado para bloquear a ciertos referenciadores para que no hagan referencia a los activos de su sitio web y, por lo tanto, roben su ancho de banda. Utilice el siguiente fragmento para definir qué dominios no pueden hacer referencia a su contenido y, por lo tanto, recibirán un error 403 Forbidden
.
RewriteCond %{HTTP_REFERER} unwanteddomain\.com RewriteCond %{HTTP_REFERER} unwanteddomain2\.comRewriteRule .* -
También se puede lograr una funcionalidad similar a través del panel de control de KeyCDN. Para saber cómo implementar la protección de hotlinks en su Zona KeyCDN, visite nuestra guía de Referrers de Zona.
Añadir tipos MIME
Los tipos MIME definen a qué se refiere una determinada extensión de archivo. Por lo tanto, a veces es necesario establecer esto en su archivo .htaccess
para informar al servidor web de qué tipo de archivo está haciendo referencia. Para ver una lista completa de tipos MIME, visite la lista de tipos MIME.
AddType image/gif .gif .GIF
El archivo .htaccess
también puede utilizarse para ayudar a mejorar el rendimiento del sitio web aprovechando la caché del navegador. Cada tipo de archivo puede definirse con un valor de caducidad determinado. Puede definir una lista personalizada de tipos de archivo y cambiar cada uno de sus valores de caducidad, sin embargo, el siguiente fragmento es un buen punto de partida.
## EXPIRES CACHING ##<IfModule mod_expires.c> ExpiresActive On ExpiresByType image/jpg "access 1 year" ExpiresByType image/jpeg "access 1 year" ExpiresByType image/gif "access 1 year" ExpiresByType image/png "access 1 year" ExpiresByType text/css "access 1 month" ExpiresByType text/html "access 1 month" ExpiresByType application/pdf "access 1 month" ExpiresByType text/x-javascript "access 1 month" ExpiresByType application/x-shockwave-flash "access 1 month" ExpiresByType image/x-icon "access 1 year" ExpiresDefault "access 1 month"</IfModule>## EXPIRES CACHING ##
Habilitar Gzip
Habilitar Gzip en su servidor de origen ayuda a mejorar el rendimiento de sus activos ya que se comprimen y por lo tanto pueden ser entregados más rápido. Puede definir una lista personalizada de tipos MIME que se comprimirán con Gzip, aunque el ejemplo siguiente es un buen punto de partida. Para obtener más información sobre los beneficios de Gzip y cómo funciona, lea nuestro artículo Habilitar la compresión Gzip.
<IfModule mod_deflate.c> AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/vnd.ms-fontobject AddOutputFilterByType DEFLATE application/x-font AddOutputFilterByType DEFLATE application/x-font-opentype AddOutputFilterByType DEFLATE application/x-font-otf AddOutputFilterByType DEFLATE application/x-font-truetype AddOutputFilterByType DEFLATE application/x-font-ttf AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE font/opentype AddOutputFilterByType DEFLATE font/otf AddOutputFilterByType DEFLATE font/ttf AddOutputFilterByType DEFLATE image/svg+xml AddOutputFilterByType DEFLATE image/x-icon AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE text/javascript AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/xml</IfModule>
Negar los métodos de solicitud HTTP
Hay varios métodos de solicitud HTTP que se utilizan para lograr diversos resultados. Si hay ciertos métodos HTTP que no quieres que un usuario emplee en tu sitio web, puedes negarlos con .htaccess
.
RewriteCond %{REQUEST_METHOD} !^(HEAD|OPTIONS|POST|PUT)RewriteRule .* -
Realizar redirecciones 301
Si necesitas realizar una redirección 301
para una página que se ha movido, esto se puede lograr fácilmente con .htaccess
. Simplemente utilice el siguiente fragmento que toma la primera URL (enlace antiguo) y la redirige a la segunda URL (enlace nuevo).
Redirect 301 https://yourwebsite.com/old-page https://yourwebsite.com/new-page
Habilitar CORS
Habilitar CORS es crucial para entregar activos estáticos a través de varios orígenes. El siguiente fragmento puede añadirse a su archivo .htaccess
para permitir que todos los orígenes compartan recursos. De lo contrario, si no está habilitado y su origen solicita recursos de otro origen, recibirá un error CORS. Lea más sobre CORS en nuestro artículo Cómo usar CORS.
<IfModule mod_headers.c> <FilesMatch "\.(ttf|ttc|otf|eot|woff|font.css|css|js|gif|png|jpe?g|svg|svgz|ico|webp)$"> Header set Access-Control-Allow-Origin "*" </FilesMatch></IfModule>
Los ejemplos anteriores de .htaccess
son un gran punto de partida para aquellos que aún no están familiarizados con el uso de .htaccess
, pero todavía quieren realizar ciertas configuraciones del servidor web. El archivo .htaccess
tiene la capacidad de realizar una serie de tareas y es bastante flexible para adaptarse a las necesidades de su sitio web. Aunque estos ejemplos de .htaccess
son un gran punto de partida, es posible que desee realizar algunas configuraciones de .htaccess
más avanzadas. Para más información sobre este tema, considere consultar el artículo de la guía de archivos .htaccess
de AskApache.