Volver a las herramientas

Generador de .htaccess

Activa los bloques de reglas que necesites — redirecciones, HTTPS, páginas de error, protección con contraseña, refuerzo de seguridad, caché — y combínalos en un único archivo .htaccess ordenado. Cada campo se procesa como texto plano, así que nada de lo que escribas aquí se ejecuta nunca.

Redirecciones

Redirecciones de URL 301 / 302

Envía una ruta antigua a una nueva. Se ejecuta antes del controlador frontal general, así que el enrutado de una app PHP nunca las absorbe.


Esquema y host

Forzar HTTPS y canonicalización de www

Un sitio debería responder exactamente en un esquema y un host. Todo lo demás debería redirigir hacia ahí.

www ⇄ sin www

Errores

Páginas de error personalizadas

Sirve tu propia página en lugar de la de Apache por defecto cuando una petición da 404, está prohibida, o el servidor falla.

Control de acceso

Proteger un directorio con contraseña

Autenticación básica a través del propio Apache — un aviso de inicio de sesión delante de una carpeta, sin código de aplicación involucrado.

Refuerzo de seguridad

Refuerzo de seguridad

Pequeñas directivas que cierran configuraciones erróneas comunes y realmente explotadas.

Rendimiento

Compresión y caché del navegador

Dos mejoras independientes: respuestas más pequeñas por la red, y visitantes recurrentes que se saltan la petición por completo.

Ancho de banda

Protección contra hotlinking

Evita que otros sitios incrusten tus imágenes directamente y consuman tu ancho de banda, comprobando el encabezado Referer.

Apps PHP

Reescritura de controlador frontal

Dirige cada petición que no sea un archivo o carpeta real a un único archivo PHP, para que el propio enrutador de la app decida qué hacer con ella.

Archivo compuesto

.htaccess

Las reglas de reescritura se ejecutan de arriba abajo dentro de un mismo bloque de motor, en este orden:

  1. Forzar HTTPS

.htaccess compuesto

# .htaccess — composed with Wespner's .htaccess Generator
# Review before deploying: https://wespner.eu/tools

<IfModule mod_rewrite.c>
    RewriteEngine On

    # Force HTTPS
    RewriteCond %{HTTPS} off
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

# Custom error pages
ErrorDocument 404 /errors/404.html

# Block access to dotfiles (.git, .env, .htpasswd, ...)
<IfModule mod_authz_core.c>
    <FilesMatch "^\.">
        Require all denied
    </FilesMatch>
</IfModule>

# Disable directory listing
Options -Indexes

# Disable the Apache version banner on error pages
ServerSignature Off

¿En nginx? .htaccess no hace nada.

Es un mecanismo exclusivo de Apache, e incluso en Apache suele estar desactivado (AllowOverride None) porque comprobarlo en cada petición es lento. Nginx necesita las reglas equivalentes escritas directamente en un bloque de servidor. Convierte esto a una configuración de Nginx

¿Tienes tu propio servidor de juegos?

Servidores de juegos Wespner con protección DDoS, discos NVMe y activación en pocos minutos.

Ver hosting