11 trucos para tu archivo htaccess - así funciona htaccess
Uno de los métodos más populares y versátiles para aplicar ajustes en un sitio web es el uso de un archivo .htaccess. Este enfoque ofrece numerosas ventajas frente a alternativas como la configuración global o local de un servidor web y resulta recomendable en muchas situaciones, ya que constituye una solución tan sencilla como eficiente para una amplia variedad de problemas frecuentes. Al mismo tiempo, su uso requiere pocas condiciones técnicas y presenta pocas limitaciones, por lo que el archivo .htaccess es en muchos aspectos una especie de navaja suiza para el trabajo con sitios web.
Ten en cuenta que solo tendrás el archivo .htaccess si utilizas un servidor Apache como Hosting web. Hosting web NginX no dispone de archivo .htaccess.
Contenido:
¿Qué es el archivo .htaccess?
¿Cómo funciona un archivo .htaccess?
¿Cómo se puede crear y editar un archivo .htaccess?
Trucos prácticos para .htaccess I: Proteger peticiones con contraseña
Trucos prácticos para .htaccess II: Bloquear y permitir rangos de IP
Trucos prácticos para .htaccess III: Prohibir el acceso a archivos individuales o tipos de archivo
Trucos prácticos para .htaccess IV: Prohibir el acceso a archivos individuales o tipos de archivo
Trucos prácticos para .htaccess V: Prohibir el listado de directorios
Trucos prácticos para .htaccess VI: Redirigir errores HTTP
Trucos prácticos para .htaccess VII: Redirigir HTTP a HTTPS
Trucos prácticos para .htaccess VIII: Bloquear crawlers, bots y motores de búsqueda
Trucos prácticos para .htaccess IX: Modificar ajustes de PHP
Trucos prácticos para .htaccess X: Establecer variables de entorno
Trucos prácticos para .htaccess XI: Redirección mediante código de estado 301
¿Qué otras posibilidades ofrece el archivo .htaccess?
¿Qué es el archivo .htaccess?
El archivo .htaccess permite a los administradores de un sitio web almacenar en cada directorio directivas, reglas y configuraciones propias que son leídas, interpretadas y aplicadas por un servidor web Apache al realizar una petición. Se diferencia de las configuraciones globales o locales del servidor principalmente en que no se guarda en un lugar central fuera del sitio, sino que reside directamente en una ruta accesible de un dominio. Esto permite un control y una coordinación tan sencillos como eficientes y fiables, e incluso la construcción de una estructura jerárquica con instrucciones acumulativas que, por ejemplo, restringen el acceso, realizan redirecciones o analizan a los visitantes según distintos criterios y les asignan permisos concretos.
¿Cómo funciona un archivo .htaccess?
El archivo .htaccess es, al igual que por ejemplo un script PHP o la configuración de programas en Linux, un archivo de texto sencillo en el que un administrador establece las instrucciones deseadas en un formato estandarizado. Al acceder a una página como https://example.org/examples/htaccess, el servidor web Apache recorre los directorios de forma recursiva: comienza en example.org y va descendiendo paso a paso por los subdirectorios indicados. En cada paso comprueba la existencia de un archivo .htaccess y ejecuta las instrucciones allí definidas antes de pasar al siguiente nivel. Dado que el servidor web Apache no almacena en caché esta información, un archivo .htaccess surte efecto de forma inmediata tras su creación: no es necesario reiniciar ni borrar la caché para que el archivo htaccess tenga validez. Sin embargo, para algunos de los comandos posibles .htaccess requiere módulos correspondientes que debe cargar el servidor web Apache; el ejemplo más destacado es el módulo responsable de redirecciones, mod_rewrite.
Consigue ahora el hosting web Apache perfecto
Ir al comparador de hosting web Apache
¿Cómo crear y editar un archivo .htaccess?
Dado que el archivo .htaccess es un documento de texto puro, puede crearse y editarse con cualquier editor compatible con ASCII en formato Linux, como gedit o mousepad en Linux o Notepad en Windows. Decisivo para la ejecución por parte del servidor web Apache es la denominación correcta .htaccess, donde el punto inicial indica que se trata de un elemento oculto que no se muestra en un gestor de archivos. Como en muchos lenguajes de scripting y archivos de configuración, también se pueden insertar comentarios marcándolos al principio con una almohadilla # para que no se ejecuten. Para el funcionamiento no importa cómo se cree o guarde la .htaccess - ya sea mediante una subida FTP, directamente mediante un acceso SSH o a través de una interfaz web con un editor de texto.
1. Trucos prácticos para .htaccess: proteger accesos con contraseña
Tras responder a la pregunta: "¿Qué es un archivo .htaccess?", es hora de mostrar algunos trucos y ejemplos prácticos. Una de las tareas más importantes de un archivo .htaccess es ofrecer un protector de contraseña sencillo, eficiente y seguro para determinados directorios (y sus subdirectorios). Esto es una alternativa al noindex mediante el archivo robots.txt. Se puede habilitar con pocas directivas:
AuthType Basic
# Tipo de autenticación
AuthName "Por favor, introduzca usuario y contraseña:"
# Título del cuadro de entrada
AuthUserFile /verzeichnis/mit/passwortdatei/.htpasswd
# Ruta absoluta a un archivo con nombres de usuario y contraseñas
AuthPGAuthoritative Off
require valid-user
# Usuarios que pueden acceder al área protegida; aquí: todos los almacenados en el archivo de contraseñas
El archivo de contraseñas contiene una combinación de nombres de usuario y contraseñas cifradas y puede crearse mediante editores online o en Linux con el comando htpasswd -c NAME. El nombre es libremente seleccionable, aunque por defecto se utiliza .htpasswd. Con require también es posible restringir el grupo de usuarios, por ejemplo con require user Name1 Name2 Name3.
2. Trucos prácticos para .htaccess: bloquear y permitir rangos de IP
Con un .htaccess también se puede bloquear el acceso para direcciones IP o rangos —muy útil en ataques DDoS—:
Order deny,allow
# Primero el bloqueo, luego las IPs permitidas
Deny from .t-online.de
# Bloquear por regla general las solicitudes de usuarios identificados como t-online.de
Deny from 255.254 255.255
# Bloquear todas las IPv4 que empiecen por 255.255. Varias IPs o rangos se pueden separar con un espacio.
Allow from 255.255.0.1
# Excepción del bloqueo para la IP 255.255.0.1
3. Trucos prácticos para .htaccess: prohibir el acceso a archivos individuales o tipos de archivo
También puede ser útil prohibir por defecto a todos los visitantes el acceso externo a determinados tipos de archivo - por ejemplo archivos de configuración y la propia .htaccess:
# Definir la extensión o el nombre del archivo
Deny from all
# Bloquea cualquier acceso externo
4. Trucos prácticos para .htaccess IV: prohibir el acceso a varios archivos o tipos de archivo
También se pueden combinar varios tipos entre sí:
# Define una máscara para todos los archivos debajo del directorio
Order Allow,Deny
Deny from all
5. Trucos prácticos para .htaccess V: prohibir el listado de directorios
Otro comando permite permitir o prohibir el listado de directorios si no contienen index.html o index.php:
Option All -Indexes
# Prohíbe mostrar el contenido del directorio; 'Indexes' lo permitiría
6. Trucos prácticos para .htaccess VI: redirigir errores HTTP
Uno de los métodos más potentes del archivo .htaccess consiste en su capacidad para que el servidor web Apache redirija las solicitudes a otras instancias. Para ello es imprescindible que el módulo mod_rewrite de Apache esté instalado y activado. El formato es sencillo: primero el administrador de un sitio web define con el comando RewriteCond una condición; a continuación, con RewriteRule especifica un nuevo destino.
Una de las tareas más habituales consiste en redirigir a los visitantes, ante un mensaje de error como el Error HTTP 404 Not Found, a una página alternativa que muestre contenido propio en lugar del texto predeterminado. Para ello solo se necesita una única línea:
ErrorDocument 404 /verzeichnis/errors/404.html
Los nombres del directorio y del archivo se pueden elegir libremente, pero ambos deben encontrarse dentro del sitio web. Como alternativa también es posible especificar como destino una dirección de dominio absoluta (interna o externa):
ErrorDocument 404 www.example.org/errors/404.html
7. Trucos prácticos para .htaccess VII: Redirigir HTTP a HTTPS
Las redirecciones y reescrituras son, sin embargo, una herramienta muy eficaz y universal, útil para muchos otros usos, por ejemplo para redirigir todas las solicitudes en texto claro por HTTP al HTTPS cifrado, vigente como estándar desde 2015:
RewriteEngine On
RewriteCond %{HTTPS} !on
# Condición: cualquier conexión que no use HTTPS
# Alternativa: RewriteCond %{Server_Port} !=443
# Captura cualquier petición externa que no se realice por el puerto 443 usado por HTTPS
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
# Regla: redirección a la dirección https://Domainname/URL
# Alternativamente también se pueden indicar aquí rutas absolutas, por ejemplo:
# RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
# Los corchetes indican un código de estado HTTP, en este caso 301 Moved Permanently
8. Trucos prácticos para .htaccess VIII: Bloquear rastreadores, bots y motores de búsqueda
También puede ser útil prohibir de forma general la visita a una página a rastreadores, bots y motores de búsqueda indeseados. A diferencia de un robots.txt, esto lo realiza directamente el servidor web Apache y no se puede evitar o ignorar fácilmente:
RewriteEngine On
RewriteBase /
# establece el directorio raíz como instancia inferior
RewriteCond %{HTTP_USER_AGENT} ^Spam [OR]
# La redirección se realiza aquí mediante la identificación de los visitantes como agentes de usuario
# Varias condiciones se pueden encadenar con operadores lógicos como [OR]
RewriteCond %{HTTP_USER_AGENT} ^Spider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Crawler [OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot [OR]
RewriteCond %{HTTP_USER_AGENT} ^googlebot
# Bloquea completamente el sitio web para la indexación por parte de Google
# En la última línea no debe aparecer [OR], porque la condición termina aquí
RewriteRule ^.* - [R=403,L]
# Redirige los agentes de usuario afectados al código de error HTTP 403 Forbidden
9. Trucos prácticos para .htaccess IX: cambiar ajustes de PHP
Mediante .htaccess también se pueden influir y establecer directamente variables del entorno PHP (límite de memoria de PHP, p. ej.) , como en:
php_value memory_limit 128M
# Establece el límite de memoria del intérprete PHP en 128 megabytes
Por supuesto, aquí se aplican límites definidos de forma global; quien pretenda eludir las restricciones del hosting web mediante este procedimiento fracasará salvo en contadas excepciones.
10. Trucos prácticos para .htaccess X: establecer variables de entorno
Además de la configuración de PHP, .htaccess permite también redefinir las variables de entorno del sistema:
SetEnv TZ Europe/Berlin
# Modifica una variable de entorno utilizada por el servidor web Apache, en este caso la zona horaria local
Naturalmente, estas modificaciones se realizan únicamente dentro del servidor web Apache, de modo que esta configuración solo afecta a las solicitudes pertinentes y no al servidor en su conjunto.
11. Trucos prácticos para .htaccess: redirección mediante el código de estado 301
Por último, también es posible redirigir solicitudes individuales o todas las de un dominio a uno nuevo, por ejemplo tras una migración. Por ejemplo, la redirección 301. Para ello solo se necesita una única línea:
Redirect 301 /verzeichnis/datei.html https://example.com/datei.html
# Realiza un Redirect 301 para un único archivo
RedirectMatch 301 /verzeichnis(.*) https://example.com/$1
# Redirige todas las peticiones del dominio original a example.com
¿Qué otras posibilidades ofrece el archivo .htaccess?
Las opciones para usar .htaccess son variadas y demasiado extensas como para tratarlas en un solo artículo. Debido a su versatilidad y a la facilidad de implementación, ofrece una solución sencilla para una gran variedad de problemas que pueden surgir en un servidor web Apache. Otra ventaja de este método es que puede aplicarse y modificarse de forma rápida e inmediata sin reiniciar el servidor. Además, permite una graduación muy detallada de las medidas, por ejemplo en directorios o archivos individuales, y no requiere permisos de acceso a las configuraciones locales o globales del servidor web Apache. La desventaja principal es que el acceso por separado afecta negativamente al rendimiento del servidor web; por ello, para sitios web con mucho tráfico se recomienda establecer los ajustes en archivos de configuración como httpd.conf.
Asegura ahora el hosting Apache perfecto
Ir al comparador de hosting Apache
Foto: Lawrence Monk en Pixabay
Escribe un comentario
- Webhosting
- Webspace
- HTTP
Etiquetas de este artículo
Más proveedores de hosting
Más artículos interesantes
Error HTTP 400: ¿Cuáles son las causas y la solución?
Error HTTP 400. Os mostramos cómo podéis resolver el error.
Comparativa de proveedores de hosting para tiendas online
Los modernos sistemas de tienda online hacen que al usuario le resulte cada vez más sencillo gestionar su propia tienda ...