El archivo .htaccess no es un mero archivo más para nuestra web, sino que es un “archivo especial” que tiene un papel fundamental para los principales gestores de contenidos (CMS) más utilizados en la actualidad: WordPress, PrestaShop, Joomla, Drupal, Magento, etc...y en la mayoría de los proyectos que necesiten un hosting para alojarse. En este post te enseñamos qué es y cómo configurarlo paso a paso.
El archivo .htaccess es un archivo que se utiliza sobre todo en alojamientos que funcionan bajo servidores Apache con Linux y su grado de importancia es tan elevado, porque no existe otro archivo igual en el alojamiento. Con él podrás realizar diferentes modificaciones sobre la configuración de la web en el servidor.
De hecho, hay plugins en WordPress que para funcionar necesitan meter ciertos valores en el archivo .htaccess. Es el caso en WordPress de los plugins de caché.
Sí, has leído bien, el punto que tiene delante el archivo y que no parece significar gran cosa, en verdad quiere decir que se trata de un archivo oculto, por lo que lo más seguro es que si tenemos un Hosting con panel de control cPanel no logremos encontrarlo nunca, al hallarse oculto dentro del Hosting. Y no solo .htaccess, sino que todos los archivos que veas que llevan un punto por delante, quieren decir que son archivos ocultos.
Por suerte, si este fuera el caso, desde cPanel hay una opción para hacer visibles esta clase de archivos. En la parte superior derecha podemos encontrar una rueda dentada con la opción 'Configuración'. En la ventana emergente (Popup) debemos seleccionar la opción 'Mostrar archivos ocultos (dotfiles)'. De hecho, “dot” significa punto en inglés, mientras que “files” significa ficheros en inglés, con lo cual ese casillero ya da a entender que te sirve para mostrar los archivos ocultos que tienen un punto.
Crear el archivo .htaccess desde cPanel o Plesk es muy sencillo. Tan solo debemos localizar la carpeta de instalación donde se encuentra WordPress o el CMS que estemos utilizando (en caso de que fuera en la raíz; con el panel de control Plesk sería dentro de la carpeta httpdocs, y en el caso de que el panel de control fuera cPanel sería dentro de public_html), y allí darle a crear un nuevo archivo .htaccess. Obviamente, después a este nuevo archivo habría que ponerle como nombre .htaccess (sin olvidarnos de poner el punto delante).
Por lo tanto el archivo .htaccess es un archivo mucho más delicado de lo que pueda parecer, siempre y cuando tengas muchas configuraciones dentro como indicamos. Dentro de lo posible lo recomendable es no sobrecargar este archivo con muchas líneas de código, sino solo con la estrictamente necesario para horrarse muchos quebraderos de cabeza en un futuro.
Si mantenemos el .htaccess original de la instalación sin líneas de código adicional no hay problema, porque siempre podremos regenerarlo a través de los ajustes principales del CMS que estemos usando.
En el caso de WordPress todavía es mucho más importante aún si cabe, debido a la de características especiales que nos permite configurar sobre el servidor para que nuestra web se aproveche de las mismas. Sin duda, .htaccess es uno de los archivos más importantes que hay para WordPress, con permiso de wp-config.php (el archivo que incluye toda la configuración para que funcione WordPress).
El archivo .htaccess permite desactivar o activar ciertas características del servidor que repercuten en nuestro website. Podemos incluir todo tipo de redirecciones, ajustes de seguridad, bloqueos de IP's y directorios, incrementar algunos valores PHP para aumentar el rendimiento de nuestra web, etc, aunque insistimos que en medida de lo posible no hay que sobrecargar este archivo.
Por ejemplo, si disponemos de un selector de PHP donde introducir los valores de PHP que necesitemos (más memoria por ejemplo), no tiene mucho sentido poner una línea de código en el .htaccess para ello, cuando directamente podemos aplicar esta mejora desde el propio hosting.
Por defecto, el archivo .htaccess original de WordPress viene con las siguientes líneas de códigos:
# 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
Ahora, si tuviéramos más configuraciones dentro del .htaccess WordPress, sería un auténtico problema, por lo que el sistema nos lo regeneraría con la información más básica, sin ninguna de las configuraciones adicionales que hubiéramos metido, lo cual podría suponer un gran problema.
RewriteEngine On
RewriteCond %{HTTP_HOST} ^tusitio.com
RewriteRule (.*) http://www.tusitio.com/$1 [R=301,L]
<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>
RewriteEngine on
RewriteCond %{HTTP_REFERER} sitio-web-a-bloquear.com [NC]
RewriteRule .* - [F]
Si no queremos que usen las imágenes de nuestra web en otra web diferente, podemos poner este código en .htaccess:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?tusitio.com/.*$ [NC]
RewriteRule .(jpg|jpeg|gif|png|bmp)$ - [F]
El código que debemos añadir en el .htaccess WordPress es el siguiente (en el caso de WP sería sustituir “archivo-a-proteger.php” por wp-config.php):
<files archivo-a-proteger.php>
order allow,deny
deny from all
</files>
<Files .htaccess>
Order allow,deny
Deny from all
</Files>
Con el archivo .htaccess puedes hacer mucho más, prácticamente puedes cambiar toda la configuración del hosting, siempre y cuando el administrador del servidor lo autorice, ya que existen restricciones por motivos de seguridad, sobre todo en los hosting compartidos.
Algunos de los códigos más habituales que puedes añadir en el archivo .htaccess, son los siguientes:
Redirigir la URL Si has cambiado de URL puedes redirigirla sin ningún problema desde el archivo .htaccess.
El código es muy sencillo, pero recuerda que debes cambiar las URL de ejemplo por las correctas:
Redirect 301 /url-vieja.html https://dominio.tld/url-nueva.html
Forzar acceso por HTTPS Cuando instalas un certificado de seguridad SSL en tu hosting, tienes que redirigir todo el tráfico hacia HTTPS. Para eso sólo necesitas añadir este código en el archivos .htaccess, pero recuerda que tienes que instalar el certificado antes para que funcione.
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Comprimir los archivos Con mod_deflate puedes comprimir los archivos en gzip para que ocupen menos espacio y la web cargue antes. El código sería algo así:
<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 tu web pueden existir distintos tipos de archivos, .jpg, .zip, .log, etc... Algunos de ellos no son necesarios para que la web funcione correctamente y en ocasiones es preferible cloquear el acceso a ciertas extensiones de archivos. Para hacerlo sólo tienes que añadir el siguiente código:
<FilesMatch "\.(htaccess|htpasswd|ini|phps|fla|psd|log|sh|zip|tar)$">
Order Deny,Allow
Deny from all
</FilesMatch>
Puedes añadir o quitar la extensiones que necesites del código.
La seguridad en línea nunca debe tomarse a la ligera, y el archivo .htaccess
es tu aliado silencioso en esta batalla constante. Con unos pocos ajustes, puedes transformar tu sitio en una fortaleza.
Una manera efectiva de blindar tu sitio es mediante la implementación de cabeceras de seguridad HTTP. Estas cabeceras instruyen a los navegadores cómo deben comportarse al interactuar con tu contenido, ayudando a prevenir ataques comunes.
<iframe>
, lo que es crucial para prevenir ataques de clickjacking. Utiliza Header set X-Frame-Options "SAMEORIGIN"
para permitir solo que tu propio sitio use tus páginas en <iframe>
.Header set X-XSS-Protection "1; mode=block"
para bloquear las páginas detectadas con XSS.Header set Strict-Transport-Security "max-age=31536000; includeSubDomains"
.Las redirecciones son fundamentales para mantener la salud SEO de tu sitio, especialmente durante las renovaciones de contenido o tras la reestructuración de un sitio web.
Las redirecciones 301 son la forma estándar de decirle a los motores de búsqueda que una página se ha movido permanentemente. Son cruciales para conservar el valor SEO de la página original. Aquí tienes cómo implementar redirecciones complejas:
# Redirigir todo un dominio a un nuevo dominio
RewriteEngine on
RewriteCond %{HTTP_HOST} ^dominio-antiguo.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.dominio-antiguo.com [NC]
RewriteRule ^(.*)$ http://dominio-nuevo.com/$1 [L,R=301,NC]
Crear páginas de error personalizadas no solo mejora la experiencia del usuario, sino que también puede ser una oportunidad para reengagement. Por ejemplo, para una página 404 personalizada, utiliza:
ErrorDocument 404 /pagina-error-404.html
Con estas estrategias en tu arsenal, estarás bien equipado para mejorar la seguridad, el rendimiento y el SEO de tu sitio web utilizando el poderoso archivo .htaccess
. Recuerda, cada cambio que hagas puede tener un gran impacto, así que procede con precaución y siempre haz copias de seguridad antes de realizar modificaciones significativas.
Si no eres un entendido, te recomendamos no tocarlo, porque las consecuencias para tu proyecto digital pueden ser nefastas.
El primer paso de un negocio en Internet es contar con un dominio. ¡Regístralo!
Protege tu web, gana posiciones en Google y aumenta tus ventas y clientes.
Continúa con tu compra
¿Es la primera vez que compras?
Si ya eres cliente de Axarnet