archivo-htaccess-que-es

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.


Qué es el archivo .htaccess y cómo podemos configurarlo

TABLA DE CONTENIDOS


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.

Qué es el archivo .htaccess y por qué es tan importante

Se trata de un archivo que, entre otras cuestiones, permite realizar toda clase de redirecciones, crear URL's amigables, evitar el HotLink, bloquear direcciones IP determinadas, así como también directorios e incluso gestionar valores de PHP.

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é.

¿Cómo ver el archivo .htaccess?

Se trata de un archivo especial y no sólo por todo el juego que puede dar al concentrar miles de líneas de código con bloqueos o redirecciones, sino porque se trata de un archivo oculto.

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.

mostrar-htaccess

¿Cómo crear el archivo .htaccess?

En principio deberíamos tener el archivo .htaccess de serie con el resto de archivos de nuestra web en el hosting, pero puede darse el caso de que lo borremos sin querer o que hayamos hecho una migración de un servidor a otro y nos haya olvidado importarlo.

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).

crear-archivo-htaccess

Modificar archivo .htaccess: precauciones a tener en cuenta

Si disponemos de un .htaccess bastante extenso con muchas configuraciones, debemos tener mucho cuidado al modificarlo, ya que si borrarnos algo que no deberíamos, puede repercutir en el funcionamiento de nuestra web, haciendo incluso que esta deje de funcionar.

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.

Cómo configurar el archivo .htaccess en WordPress

El archivo .htaccess como ya hemos comentado se trata de archivo muy especial para los gestores de contenidos (CMS - Content Management System en inglés).

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.

.htaccess por defecto en WordPress

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

contratar hosting


Si lo borramos, lo perdemos o pasa cualquier cosa con el archivo .htaccess WordPress original, no pasa nada. Podemos regenerar ese archivo original con esa misma información desde 'Ajustes → Enlaces permanentes', guardando la estructura de los cambios de las URL amigables que correspondan a nuestro 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.

regenerar-htaccess

Copia de Seguridad de .htaccess WordPress

En caso de disponer un .htaccess sobrecargado con configuraciones relacionadas con WordPress u otras plataformas, desde Axarnet recomendamos hacer una copia de seguridad del mismo, más que nada porque no nos quedemos sin él, ya que después volver a realizar todas las configuraciones que habíamos hecho va a resultar muy complicado. Si bien podríamos restaurar un .htaccess WordPress básico, pero perderíamos todas las configuraciones que había previamente y alguna de ellas, puede que ni sepamos si las ha puesto algún plugin.

Trucos relacionados con .htaccess

Desde Axarnet te indicamos algunos trucos o más bien códigos básicos que se suelen trabajar en el archivo .htaccess.
  • Dominio visible con www
    Este truco sirve para acceder a la web con www. Hoy en día basta con escribir el nombre del dominio y su extensión para acceder a su correspondiente web. Lo de www se ha quedado algo anticuado, pero hay a quien aún todavía le gusta. Por lo que para mantener la parte de www en la dirección web, solo hay que que añadir este código en el .htaccess:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^tusitio.com
RewriteRule (.*) http://www.tusitio.com/$1 [R=301,L]

  • Bloquear IP’s
    Si estamos recibiendo ataques desde una misma IP con el objetivo de hacer SPAM sobre nuestro dominio, tumbar el servidor o llevar a cabo un ataque de fuerza bruta para obtener nuestras credenciales, podemos bloquear las IPs dentro del .htaccess con el código que ponemos a continuación. Los 000.000.000.000 deberíamos substituirlos por las IP's a bloquear. Se pueden poner todas las que se quieran, pero contra más haya, más sobrecargado estará el .htaccess:
<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 Web
    Si en vez de una IP, queremos bloquear una web, podemos hacerlo con el siguiente código:
RewriteEngine on
RewriteCond %{HTTP_REFERER} sitio-web-a-bloquear.com [NC]
RewriteRule .* - [F]

  • Evitar el Hot Linking o Robo de Imágenes
    Para quien no lo sepa el Hot Linking se trata en una “técnica” que consiste en copiar las imágenes de un sitio en otro mediante su misma url para no consumir ancho de banda propia, sino de la fuente.

    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]

  • Restringir Acceso a Archivos
    Esta opción es muy buena si no queremos que terceros puedan acceder a algunos archivos de nuestra web, por ejemplo, al wp-config.php de WordPress que incluye todo los datos de la configuración del CMS.

    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>

  • Proteger el Archivo .htaccess en si mismo
    El propio archivo .htaccess puede incluir mucha información valiosa, así pues podemos protegerlo de si mismo con este código para que nadie pueda acceder:
<Files .htaccess>
Order allow,deny
Deny from all
</Files>


Códigos para el archivo .htaccess habituales

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.

Mejoras en la Seguridad con .htaccess

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.

Cabeceras de Seguridad HTTP

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.

  • X-Frame-Options: Esta cabecera evita que tu sitio sea utilizado en un <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>.
  • X-XSS-Protection: Activa la protección del navegador contra ataques de Cross-site Scripting (XSS). Añade Header set X-XSS-Protection "1; mode=block" para bloquear las páginas detectadas con XSS.
  • Strict-Transport-Security: La cabecera HSTS le dice al navegador que solo debe comunicarse con tu sitio a través de HTTPS, protegiéndolo contra ataques de hombre en el medio. Implementa esto con Header set Strict-Transport-Security "max-age=31536000; includeSubDomains".
  • Content-Security-Policy (CSP): La CSP es una capa adicional de seguridad que ayuda a detectar y mitigar ciertos tipos de ataques, incluidos XSS y la inyección de datos. Configúralo cuidadosamente según las necesidades específicas de tu sitio.

SEO y Redirecciones Avanzadas

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.

Redirecciones 301 Avanzadas

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]

Páginas de Error Personalizadas

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.

Conclusión

El archivo .htaccess es un archivo importante dentro de cualquier web, pero más si cabe en webs hechas con CMS como WordPress o PrestaShop. Contine información crucial sobre redirecciones, bloqueos y otras cuestiones de interés por lo que ojo, al modificarlo y eliminarlo.

Si no eres un entendido, te recomendamos no tocarlo, porque las consecuencias para tu proyecto digital pueden ser nefastas.


contratar hosting





Imagen

Hosting Web

Lanza tu proyecto a la red. Desde 2,48 € al mes podrás tener visible tu negocio en Internet ¿A qué esperas?

Dominios

El primer paso de un negocio en Internet es contar con un dominio. ¡Regístralo!

Imagen

Certificado SSL

Protege tu web, gana posiciones en Google y aumenta tus ventas y clientes.

Imagen

Hosting WordPress

Para páginas corporativas y ecommerce hechos en WordPress. Configuración específica y backups diarios.
AXARNET COMUNICACIONES S.L | Lee nuestro Aviso Legal y nuestra Política de Cookies | Echa un vistazo a nuestras Condiciones Generales de Contratación

Continúa con tu compra

¿Es la primera vez que compras?

Si ya eres cliente de Axarnet