Encontranos en redes
.htaccessRedireccionesSeguridad5 min de lectura
Configurar .htaccess para tu sitio
Redirecciones 301/302, páginas de error personalizadas, bloqueo de IPs y reescritura de URLs.
¿Qué es .htaccess?
El archivo .htaccess es un archivo de configuración de Apache/LiteSpeed que permite controlar el comportamiento del servidor a nivel de directorio. Se ubica en public_html/ y afecta a todo el sitio.
Redirecciones
Redirección 301 (permanente)
apache
# Redirigir una página específica
Redirect 301 /pagina-vieja https://tudominio.com/pagina-nueva
# Redirigir con RewriteRule
RewriteEngine On
RewriteRule ^blog/articulo-viejo$ /blog/articulo-nuevo [R=301,L]Redirección 302 (temporal)
apache
Redirect 302 /mantenimiento https://tudominio.com/proximamenteRedirigir dominio completo
apache
RewriteEngine On
RewriteCond %{HTTP_HOST} ^dominio-viejo\.com$ [NC]
RewriteRule ^(.*)$ https://dominio-nuevo.com/$1 [R=301,L]Forzar www o sin www
apache
# Forzar www
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
# Forzar sin www
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]Páginas de error personalizadas
apache
# Errores personalizados
ErrorDocument 404 /errores/404.html
ErrorDocument 403 /errores/403.html
ErrorDocument 500 /errores/500.html
ErrorDocument 503 /errores/503.htmlBloquear IPs
apache
# Bloquear IPs específicas
<RequireAll>
Require all granted
Require not ip 192.168.1.100
Require not ip 10.0.0.0/8
</RequireAll>
# Sintaxis alternativa (Apache 2.2)
Order Allow,Deny
Allow from all
Deny from 192.168.1.100Protección contra hotlinking
Evitá que otros sitios usen tus imágenes directamente:
apache
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?tudominio\.com [NC]
RewriteRule \.(jpg|jpeg|png|gif|webp|svg)$ - [F,NC,L]Headers de seguridad
apache
<IfModule mod_headers.c>
# Prevenir clickjacking
Header always set X-Frame-Options "SAMEORIGIN"
# Prevenir MIME sniffing
Header always set X-Content-Type-Options "nosniff"
# XSS Protection
Header always set X-XSS-Protection "1; mode=block"
# Referrer Policy
Header always set Referrer-Policy "strict-origin-when-cross-origin"
# Permissions Policy
Header always set Permissions-Policy "camera=(), microphone=(), geolocation=()"
</IfModule>Deshabilitar listado de directorios
apache
# Evitar que se vea el contenido de carpetas sin index
Options -IndexesProteger archivos sensibles
apache
# Bloquear acceso a archivos de configuración
<FilesMatch "^\.(htaccess|htpasswd|env)$">
Require all denied
</FilesMatch>
# Bloquear acceso a wp-config.php
<Files wp-config.php>
Require all denied
</Files>Recomendaciones
- Siempre hacé backup del
.htaccessantes de editarlo - Probá los cambios inmediatamente después de guardar
- Si el sitio da error 500, revisá la sintaxis del archivo
- Usá comentarios (#) para documentar cada regla
- No dupliques
RewriteEngine On(una sola vez al inicio)
¿Te resultó útil esta guía?