Todo lo que debes saber sobre el archivo .htaccess
El archivo .htaccess es uno de los archivos más importantes en nuestra web, siendo un archivo especial que cumple un papel fundamental en los principales gestores de contenidos o CMS como WordPress, PrestaShop, Joomla, Drupal, Magento, etc. Aun así, hay que tener especial cuidado con qué código añadimos a este fichero y qué nivel de sobrecarga le damos. Por ello, este post resulta indispensable para ti antes de que lo manipules.
En Educa Open, queremos profundizar en qué consiste el archivo .htaccess, cómo configurarlo y las distintas maneras de hacerlo y un resumen de las principales acciones que podemos llevar a cabo en este archivo. Cuando acabes de leer el siguiente artículo, tendrás los conocimientos necesarios para modificar este fichero con total seguridad.
¿Estás preparado? ¡Comenzamos!
¿Qué es el archivo .htaccess?
Para empezar, debes saber que el archivo .htaccess se usa en alojamientos que funcionan bajo servidores Apache con Linux, siendo el único archivo de este tipo dentro de los hostings. Sobre todo, nos permite hacer toda clase de redirecciones, generar URLs amigables, evitar el HotLink, bloquear direcciones IP concretas o gestionar valores de PHP.
La importancia de este archivo es tal que existen plugins dentro de WordPress que necesitan introducir ciertos valores en el archivo .htaccess para funcionar correctamente. Este es el caso de los plugins de caché, tan necesarios e importantes en el mundo SEO. En definitiva, para que funcione correctamente una web, muchas veces tendremos que introducir cambios en este importante fichero.
¿Cómo acceder hasta el archivo .htaccess?
El archivo .htaccess es un archivo que se encuentra oculto en nuestro alojamiento. ¿Cómo puede estar en oculto un apartado tan importante? La explicación es sencilla. Si te das cuenta, este archivo empieza por un punto, lo que nos indica que se trata de un elemento oculto en nuestro hosting. Todos los elementos que empiecen por un punto estarán ocultos en nuestro panel de control cPanel.
Para llegar a ellos, tendrás que navegar por la parte superior derecha de tu cPanel hasta llegar a la parte de configuración. Después, deberás seleccionar la opción “mostrar archivos ocultos (dotfiles)”. Y es que dot significa punto en inglés, mientras que files se traduce como ficheros. Después de conocer su traducción literal, entendemos mucho mejor porque están ocultos.
Una vez que actives esta opción, podrás encontrar el archivo .htaccess con facilidad.
¿Por qué debes tener cuidado al modificar tu .htaccess?
Hay que ser extremadamente cautelosos a la hora de modificar el archivo .htaccess en nuestro alojamiento. ¿Por qué? Porque cualquier cambio puede repercutir en el funcionamiento de nuestra web. Imagina por un momento que borras alguna línea de código que no deberíamos, provocando una caída de la web instantánea.
Por este motivo es importante no sobrecargar el archivo .htaccess con muchas líneas de código, sino que debemos incluir únicamente lo necesario. Y es que cuantas más configuraciones introduzcamos en este fichero, más fácil va a ser borrar cualquier elemento. Ahórrate problemas en un futuro, siendo sensato y práctico a la hora de hacer cambios.
¿Cómo configurar el archivo .htaccess en WordPress?
El archivo .htaccess es un elemento muy importante dentro de los gestores de contenidos o CMS como WordPress. Y es que nos deja activar ciertas características del servidor que tienen una incidencia directa en nuestra página web. Por ejemplo, podemos incluir todo tipo de redirecciones, ajustes de seguridad, bloqueos de IP’s y directorios o incrementar algunos valores PHP para aumentar el rendimiento.
Sin embargo, tal y como hemos avisado, no hay que sobrecargar este archivo. Por ejemplo, si ya tienes un selector de PHP en el que introducir los valores de PHP que necesites, no hace falta que también añadas una línea de código en el .htaccess para hacerlo.
Así, este es el archivo .htaccess original de WordPress:
# BEGIN WordPress
# Las directivas (líneas) entre `BEGIN WordPress` y `END WordPress` se generan dinámicamente
# , y solo se deberían modificar mediante filtros de WordPress.
# Cualquier cambio en las directivas que hay entre esos marcadores se sobrescribirán.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Pega este código en algún lugar donde lo tengas bien vigilado, ya que si borras o pierdas el archivo .htaccess, podrás regenerarlo a través de este código original. Para ello, tendrás que ir a “ajustes” y después a “enlaces permanentes”. Otra cuestión es que tengamos más configuraciones dentro de este elemento, puesto que no recuperaríamos dichas configuraciones adicionales. Por ello, desde Educa Open, te animamos a hacer una copia de seguridad tras cada modificación para poder dar marcha atrás de forma rápida y eficaz.
Códigos básicos para el archivo .htaccess
A continuación, te queremos transmitir una serie de códigos básicos que se suelen trabajar en el archivo .htaccess.
Dominio visible con www
Hoy en día, tan solo tenemos que escribir el nombre del dominio y su extensión para entrar a una web. Sin embargo, hay a quien todavía le gusta lo del www. Esto se puede provocar añadiendo esta parte de código al .htaccess.
RewriteEngine On
RewriteCond %{HTTP_HOST} ^tusitio.com
RewriteRule (.*) <http://www.tusitio.com/$1> [R=301,L]
Bloquear IP’s
Este código se suele utilizar cuando se reciben ataques de una misma IP con la intención de hacer spam sobre nuestro dominio o tumbar el servidor. Cuando las tengamos localizadas, podemos bloquear las IPs desde el archivo .htaccess con el siguiente código, sustituyendo los 0 por los números correctos.
<Limit GET HEAD POST>
order allow,deny
deny from 000.000.000.000
deny from 000.000.000.000
deny from 000.000.000.000
allow from all
</limit>
Bloquear una web
Lo mismo que en el anterior caso. Si queremos bloquear una web lo podemos hacer con el siguiente código.
RewriteEngine on
RewriteCond %{HTTP_REFERER} sitio-web-a-bloquear.com [NC]
RewriteRule .* - [F]
Evitar el Hot Linking
El Hot Linking consiste en una técnica un tanto oscura. Básicamente, se trata de copiar las imágenes de un sitio web en otro a través de la URL. Así, la web que lo copia no consuma nada de ancho de banda, sino de la fuente. Esto se puede evitar con el siguiente código.
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?tusitio.com/.*$ [NC]
RewriteRule .(jpg|jpeg|gif|png|bmp)$ - [F]
Restringir el acceso a archivos
Si queremos que un tercero no pueda acceder a algunos archivos de nuestra web, por ejemplo al wp-config.php de WordPress, tan solo tenemos que añadir el siguiente código a nuestro archivo .htaccess.
<files archivo-a-proteger.php>
order allow,deny
deny from all
</files>
Proteger el archivo .htaccess
Como hemos visto en el siguiente post, el archivo .htaccess puede contener información muy valiosa. Por ello, podemos protegerla con el siguiente código.
<Files .htaccess>
Order allow,deny
Deny from all
</Files>
Códigos para el archivo .htaccess más frecuentes
Por último, queremos transmitirte algunos de los códigos más habituales que se pueden incluir en un archivo .htaccess
Redirecciones
Desde el archivo .htaccess se pueden hacer todas las redirecciones que queramos. Además, es muy sencillo, ya que solo hay que completar el siguiente código.
Redirect 301 /url-vieja.html <https://dominio.tld/url-nueva.html
>
Forzar acceso por HTTPS
Hay ocasiones en las que, tras instalar un certificado de seguridad SSL en el hosting, tendremos que redirigir todo el tráfico de nuestra web hacia HTTPS. Para hacerlo, tan solo debes añadir el siguiente código a tu archivo .htaccess.
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Comprimir archivos
Gracias a este archivo, también puedes comprimir ciertos elementos de tu web para que ocupen el menos espacio posible. Así, tu web funcionaría a una velocidad mucho más alta. Este sería el código a incluir.
<IfModule mod_deflate.c>
# Habilitar la compresión de archivos
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript application/x-javascript
# Se pueden excluir navegadores
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\\.0[678] no-gzip
BrowserMatch \\bMSIE !no-gzip !gzip-only-text/html
Header append Vary User-Agent
</IfModule>
Restringir el acceso a tipos de archivos
En una web pueden verse archivos .jpg, .zip, .log y muchos más. Como algunos de ellos no son necesarios para que la web funcione de forma correcta, puedes bloquear el acceso a ciertas extensiones de archivos con el siguiente código.
<FilesMatch "\\.(htaccess|htpasswd|ini|phps|fla|psd|log|sh|zip|tar)$">
Order Deny,Allow
Deny from all
</FilesMatch>
Artículos relacionados
¿Qué es el código ASCII? Secretos, estructura y aplicaciones
El código ASCII (American Standard Code for Information Interchange) es uno de los pilares fundamentales de la informática moderna.
Aprende a crear una clave SSH
El uso de claves SSH (Secure Shell) es una práctica fundamental para garantizar la seguridad y autenticación en la conexión a servidores.
Creación y gestión de formularios con HTML y PHP
Un formulario es una de las herramientas más utilizadas e importante en el desarrollo web, ya que permite recopilar y enviar datos de los usuarios para procesarlos