.htaccess Guía: tutoriales y ejemplos de código

Divulgación: HostScore está soportado por lectores. Cuando compra a través de nuestros enlaces, podemos ganar una comisión.

.htaccess Los archivos son documentos de texto sin formato que le permiten administrar cómo responde su servidor web a las solicitudes. Aunque originalmente fue diseñado para el control de acceso a archivos a nivel de directorio, también tiene otros usos.

Esta guía no pretende ser una documentación exhaustiva sobre .htaccess. Está destinado a servir como una introducción básica y un esquema para los usuarios más nuevos. A pesar de .htaccess se puede utilizar para varias cosas, eso no significa que siempre deba serlo.

¿Qué es el .htaccess?

La .htaccess, o archivo de acceso de hipertexto, originalmente estaba destinado a que los usuarios controlaran el acceso a los archivos. Al usarlo, puede proteger con contraseña directorios específicos en su servidor de alojamiento web. Es utilizado por muchos (pero no todos) servidores web del mercado, como Apache.

En combinación con archivos .htpasswd, puede ejercer un alto grado de control de acceso al directorio para múltiples usuarios. Al mismo tiempo, también se puede utilizar para manejar redirecciones, prohibir direcciones IP o rangos de IP específicos, o incluso trabajar con páginas de error personalizadas.

Ubicando tu .htaccess Archive

.htaccess presentar
Su socio de .htaccess El archivo está oculto de forma predeterminada en cPanel File Manager. Revélelo configurando los ajustes del Administrador de archivos.

Sólo porque tenga un uso, no significa que todos planes de alojamiento web ven con el .htaccess archivo. Si no puede localizar el suyo, no se asuste, es posible que simplemente esté oculto. Sin embargo, la mayoría de las veces, el archivo debe estar ubicado en su carpeta raíz. 

Cuando utilice el administrador de archivos de su alojamiento web, generalmente será www o public_html. Si ejecuta varios sitios web desde la misma cuenta, es posible que tenga uno en el directorio principal que contiene cada sitio web.

La mayoría de los archivos que comienzan con '.' son archivos ocultos. Si no puedes verlos .htaccess en estas ubicaciones, luego intente habilitar la opción 'mostrar archivos ocultos' en la configuración de su administrador de archivos o en el Protocolo de transferencia de archivos (FTP) cliente que estás utilizando.

Gracias a .htaccess - Ejemplos de .htaccess Código

A los efectos de esta guía, analizaremos .htaccess codificación en el contexto de Apache servidor web ya que es de uso común. Nginx no hace uso de este archivo.

Como se mencionó, .htaccess es bastante versátil y se puede utilizar para lograr varias cosas. Sin embargo, lo primero que debe hacer es proteger el archivo. A menos que haga esto, cualquiera podrá ver su .htaccess archivo.

Abra el archivo y agregue el siguiente código:

	<FilesMatch "^\.htaccess">
		Order allow,deny
		Deny from all
	</FilesMatch>

Si hace esto, cualquiera que intente verlo simplemente verá un mensaje de error. Ahora que ha protegido el archivo, echemos un vistazo a para qué más se puede utilizar.

1. Control de acceso al directorio

Para evitar la entrada no autorizada, .htaccess Puede funcionar con otro archivo llamado .htpasswd. Este último es donde puede almacenar nombres de usuarios específicos y sus permisos de acceso a áreas específicas. A diferencia de .htaccess, sólo necesitas un archivo .htpasswd.

Para crear el archivo y agregar un usuario:

	htpasswd -c /directory/ .htpasswd jamesdean

Una vez que presione la tecla Intro, se le pedirá que proporcione la contraseña para el nombre de usuario que acaba de definir. Al almacenar la contraseña, se cifrará con hash, no se almacenará en la forma en que la ingrese.

Por defecto, todos los directorios son de acceso abierto. Para restringir el acceso a directorios específicos, deberá colocar uno .htaccess archivo en cada directorio que desee proteger. El código del archivo especificará varias asignaciones o restricciones. Por ejemplo:

	AuthUserFile /directory/.htpasswd
	AuthName "Restricted Directory"
	AuthType Basic
	<Limit GET POST>
		require user jamesdean
	</Limit>

El código anterior permite el acceso al directorio especificado solo al usuario jamesdean. Al mismo tiempo, restringe el acceso de Jamesdean únicamente a las funciones GET y POST.

2. redirección

Este es uno de los usos más comunes del .htaccess archivo ya que hace que la redirección sea muy simple. Puedes optar por redirigir cualquier cosa, desde una única URL a una carpeta completa o incluso a otro dominio:

URL de redireccionamiento: 

	RedirectMatch 301 /old-page/ https://example.com/new-page/

Redirigir carpetas: 

	RewriteRule ^/?old_folder/(.\*)$ /new_folder/$1 [R,L]

Redirigir dominios: 

	RewriteRule ^(.\*)$ http://new_domain.com/$1 [L,R=301]

Al utilizar estas líneas, debe asegurarse de que el módulo necesario para manejar las reescrituras esté habilitado. Por defecto, lo es. Sin embargo, es una buena práctica incluir el código para habilitarlo junto con las instrucciones. Para un ejemplo más completo:

	<IfModule mod_rewrite.c>
		RewriteEngine On
		RedirectMatch 301 /old-page/ /new-page/
	</IfModule>

3. Manejo de errores personalizado

El uso de identificadores de errores personalizados puede ayudar a mejorar su (Search Engine Optimization - SEO). En lugar de que los visitantes choquen contra una pared genérica, puedes usar .htaccess para ofrecerles páginas personalizadas según el error encontrado.

Deberá crear una página personalizada para cada error personalizado que desee manejar y luego redirigir esos tipos de error, uno por línea en .htaccess.

	ErrorDocument 400 /bad_request.html
	ErrorDocument 401 /auth_required.html
	ErrorDocument 402 /forbidden.html
	ErrorDocument 403 /file_not_found.html
	ErrorDocument 404 /internal_error.html

4. Prevención de enlaces directos

Cuando otro sitio crea enlaces directos a sus imágenes, no sólo está haciendo uso de sus imágenes, sino también de su ancho de banda. Incluso si tiene un plan de alojamiento web con ancho de banda no medido, ocupará los recursos de su servidor.

Para evitar el enlace directo de imágenes:

	RewriteEngine on
	RewriteCond %{HTTP_REFERER} !^$
	RewriteCond %{HTTP_REFERER} !^http://(www\.)your_domain.com/.*$ [NC]
	RewriteRule \.(gif|jpg)$ - [F]

Si quiere avergonzarlos por intentar abusar de sus recursos, incluya otra línea para mostrar una imagen que indique a las personas que el propietario del sitio está robando recursos de otros sitios:

	RewriteRule \.(gif|jpg)$ http://www.example.com/angryman.gif [R,L]

5. Bloquear robots malos

El problema de los bots es que no todos son malos. Por ejemplo, los rastreadores de Google también son robots, pero cumplen un propósito importante. Sin embargo, los robots malos a menudo hacen cosas desagradables, como extraer datos, mientras consumen sus recursos de alojamiento web para hacerlo.

Usando el .htaccess El archivo es una forma de denegar el acceso a bots específicos. Hay varias formas de hacerlo, ya sea mediante dirección IP o agente de usuario, que es una especie de etiqueta de identificación. El bloqueo de IP se puede realizar con IP individuales o con un rango completo:

	Deny from 123.123.123.123

OR

	Deny from 124.124.124.0/255

Si tiene la intención de bloquear bots específicos según el agente de usuario:

	RewriteEngine On
	RewriteCond %{HTTP_USER_AGENT} WebReaper [OR]
	RewriteCond %{HTTP_USER_AGENT} ^VoidEYE [OR]
	RewriteCond %{HTTP_USER_AGENT} ^AnyBot
	RewriteRule .* - [F,L]

6. Habilite las inclusiones del lado del servidor

Lado del servidor incluye (SSI) le permite llamar scripts CGI o incluso documentos HTML desde el contenido HTML. Esto puede resultar útil de varias maneras, por ejemplo, manteniendo el tamaño de los archivos más manejables o ayudándole a producir sitios más fáciles de mantener.

Deberá definir cada tipo de archivo para el que desea habilitar SSI:

	AddHandler server-parsed .html
	AddHandler server-parsed .shtml

Si descubre que no puede ejecutar archivos CGI fuera del directorio cgi-bin, será necesario habilitarlo:

	AddHandler cgi-script .cgi
	Options +ExecCGI

Nota: Esto puede funcionar o no dependiendo de las políticas que su servidor web tenga implementadas para sus servidores. Si recibe un error al hacer esto, deberá comunicarse con su equipo de soporte para ver si pueden habilitarlo por usted.

Conclusión: uso .htaccess Escasamente

Dado lo poderoso que es este archivo, puede ser difícil resistirse a simplemente agregar algunas líneas adicionales de código para hacer las cosas. Sin embargo, es necesario recordar que el .htaccess El archivo no es un archivo de configuración principal. 

Cada vez que el servidor web registra una .htaccess archivo, tiene que leerlo y ejecutarlo para anular los ajustes de configuración principales. Este proceso de lectura y ejecución requiere tiempo y recursos, lo que supone una carga adicional para los servidores web. Siempre que sea posible, evite el uso excesivo de este archivo.

Preguntas frecuentes sobre .htaccess

Debería usar .htaccess?

En un sentido de uso global, la .htaccess El archivo puede ofrecer mucha comodidad. Sin embargo, esto conlleva un coste potencialmente elevado en recursos del servidor. Siempre que sea posible, confíe en la configuración del servidor de red en lugar de en la .htaccess archivo.

¿Cómo sé si mi .htaccess ¿está trabajando?

La forma más sencilla de garantizar su .htaccess El archivo está funcionando es visitar la URL del directorio en el que lo colocó. Si no funciona, probablemente encontrará un error interno del servidor 500.

¿Puedo tener múltiples .htaccess los archivos?

.htaccess Los archivos técnicamente se pueden colocar en cada directorio que desee configurar. Si ejecuta varios sitios web, cada directorio de inicio puede tener su propio archivo, junto con uno en cada subdirectorio debajo de él.

¿Cuál es la regla de reescritura en htaccess?

Reescribir es una Apache módulo que le permite reescribir solicitudes de URL. Simplemente toma una solicitud entrante y la dirige hacia una que usted haya especificado para que ocupe su lugar.


Mas de HostScore

Calcule su costo

¿Cuánto debería pagar por el alojamiento web? ¿Está planificando el presupuesto de su sitio web?

Cuéntenos sobre su sitio web y le ayudaremos a estimar cuánto debe pagar por su proveedor de alojamiento web durante los próximos 12 meses.

HostScore Calculadora (Gratis)

Artículo de Timothy Shim

Timothy Shim es escritor, editor y experto en tecnología. Comenzó su carrera en el campo de la tecnología de la información, rápidamente encontró su camino hacia la impresión y desde entonces ha trabajado con títulos de medios nacionales, regionales e internacionales, incluidos ComputerWorld, PC.com, Business Today y The Asian Banker. Su experiencia radica en el campo de la tecnología tanto desde el punto de vista del consumidor como del empresarial.
Foto del autor