Vai al contenuto
Strumento gratuito

Generatore .htaccess e generatore htpasswd

Con il generatore .htaccess crei online un file .htaccess pronto all'uso, combinando moduli per reindirizzamenti 301, HTTPS, protezione con password, cache e compressione. Ottieni anche il file .htpasswd con hash bcrypt. Per example.com, per esempio, vengono create le regole 301 che reindirizzano www.example.com e http a https://example.com. Gratis, senza registrazione e direttamente nel browser.

Creato da Dimitri Heissler

Stai creando qualcosa di tuo? Ospitalo su un VPS con controllo completo.

Facoltativo. Necessario solo per la regola www e la protezione contro l'hotlinking. Si applicherà esclusivamente a questo dominio.

Avvio rapido

Il file pronto si trova sotto i componenti. Vai direttamente al risultato

HTTPS e www

Forza HTTPS e stabilisce se il tuo indirizzo debba usare www.

Un formato uniforme evita contenuti duplicati nei motori di ricerca. Inserisci qui sopra il tuo dominio affinché la regola si applichi solo a quello.

  • Se il tuo sito è dietro Cloudflare, un load balancer o un reverse proxy, Apache spesso vede solo HTTP e continua a reindirizzare all'infinito (errore ERR_TOO_MANY_REDIRECTS). In tal caso, attiva «Dietro un proxy».

Reindirizzamenti

Reindirizza i vecchi indirizzi a quelli nuovi oppure trasferisce l'intero dominio.

Protezione con password

Protegge la pagina con nome utente e password, ad esempio una versione di staging.

Accesso IP

Consente solo determinati indirizzi IP o ne blocca alcuni.

Pagine di errore

Mostra pagine personalizzate per gli errori 404, 403, 500 e altri.

Caching del browser

Imposta per quanto tempo i browser conservano immagini, stili e font.

Immagini e font cambiano raramente e possono avere tempi di memorizzazione lunghi. Per CSS e JavaScript, usa tempi lunghi solo se i nomi dei file contengono un numero di versione.

Compressione

Riduce le dimensioni dei testi trasmessi con Brotli e GZIP, velocizzandone il trasferimento.

Vengono compressi solo formati testuali come HTML, CSS, JavaScript, JSON, XML e SVG. Immagini e video sono già compressi e restano invariati.

Impedisce ad altri siti di incorporare direttamente le tue immagini.

Sicurezza

Disattiva l'elenco delle directory e blocca i file nascosti e i Backup.

  • Options -Indexes causa un errore 500 presso alcuni provider se non consentono Options nel file .htaccess. In tal caso, rimuovi la riga o chiedi al supporto di abilitare AllowOverride Options.

Header di sicurezza

Imposta X-Frame-Options, nosniff, Referrer-Policy, Permissions-Policy e HSTS.

Determina se altri siti possono incorporare il tuo sito in un frame.

  • La Permissions-Policy blocca l'accesso della pagina a fotocamera, microfono e posizione. Se ti serve una di queste funzionalità, ad esempio per le videochiamate o le mappe, modifica la riga.

Valori PHP

Aumenta il limite di upload, la memoria e il tempo di esecuzione per PHP.

I tuoi file

5 componenti attivi

# .htaccess generato con il generatore .htaccess di ZAP-Hosting
# Prima del caricamento: crea una copia di sicurezza e verifica tutto in un ambiente di test.

# HTTPS e formato del dominio
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# Informazioni generali e sicurezza
Options -Indexes
AddDefaultCharset UTF-8
ServerSignature Off
<IfModule mod_headers.c>
  Header always unset X-Powered-By
  Header unset X-Powered-By
</IfModule>
RewriteCond %{REQUEST_URI} !(^|/)\.well-known/ [NC]
RewriteRule (^|/)\. - [F]
<FilesMatch "\.(bak|sql|log|ini|swp|dist|orig|old|conf)$|~$">
  Require all denied
</FilesMatch>

# Header di sicurezza
<IfModule mod_headers.c>
  Header always set X-Content-Type-Options "nosniff"
  Header always set X-Frame-Options "SAMEORIGIN"
  Header always set Referrer-Policy "strict-origin-when-cross-origin"
  Header always set Permissions-Policy "camera=(), microphone=(), geolocation=()"
</IfModule>

# Compressione
<IfModule mod_brotli.c>
  AddOutputFilterByType BROTLI_COMPRESS text/html text/plain text/css text/xml text/javascript application/javascript application/json application/ld+json application/xml application/xhtml+xml application/rss+xml application/atom+xml image/svg+xml image/x-icon font/ttf font/otf application/vnd.ms-fontobject
</IfModule>

<IfModule mod_deflate.c>
  AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript application/javascript application/json application/ld+json application/xml application/xhtml+xml application/rss+xml application/atom+xml image/svg+xml image/x-icon font/ttf font/otf application/vnd.ms-fontobject
</IfModule>

# Caching del browser
<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresByType image/jpeg "access plus 1 month"
  ExpiresByType image/png "access plus 1 month"
  ExpiresByType image/gif "access plus 1 month"
  ExpiresByType image/webp "access plus 1 month"
  ExpiresByType image/avif "access plus 1 month"
  ExpiresByType image/svg+xml "access plus 1 month"
  ExpiresByType image/x-icon "access plus 1 month"
  ExpiresByType text/css "access plus 1 week"
  ExpiresByType text/javascript "access plus 1 week"
  ExpiresByType application/javascript "access plus 1 week"
  ExpiresByType font/woff "access plus 1 year"
  ExpiresByType font/woff2 "access plus 1 year"
  ExpiresByType font/ttf "access plus 1 year"
  ExpiresByType font/otf "access plus 1 year"
  ExpiresByType application/vnd.ms-fontobject "access plus 1 year"
  ExpiresByType video/mp4 "access plus 1 month"
  ExpiresByType video/webm "access plus 1 month"
  ExpiresByType audio/mpeg "access plus 1 month"
  ExpiresByType audio/ogg "access plus 1 month"
  ExpiresByType text/html "access plus 0 seconds"
  ExpiresByType application/xhtml+xml "access plus 0 seconds"
</IfModule>

64 righe

Alcuni browser rimuovono il punto iniziale o aggiungono .txt. Prima del caricamento, rinomina il file scaricato in .htaccess.

Dovresti verificarlo

  • Se il tuo sito è dietro Cloudflare, un load balancer o un reverse proxy, Apache spesso vede solo HTTP e continua a reindirizzare all'infinito (errore ERR_TOO_MANY_REDIRECTS). In tal caso, attiva «Dietro un proxy».

Prima del caricamento

  • Salva il file .htaccess esistente, se presente.
  • Prova prima il file su un sito di staging, non sul sito live.
  • Li collochi nella directory principale del tuo dominio (di solito public_html o htdocs). Il nome inizia con un punto.
  • Se in seguito la pagina segnala un errore 500, rinomina il file tramite FTP e controlla il registro degli errori del tuo server.

Risultato di esempio

Che cosa ti fornisce questo generatore .htaccess

Attivi i moduli e ottieni un file .htaccess pronto da copiare o scaricare. Per la protezione con password viene creato anche un file .htpasswd con hash bcrypt; per i valori PHP, un file .user.ini. Le impostazioni rischiose vengono segnalate subito. Tre esempi:

Esempio 1: nuovo sito web su example.com

Input:

  • Dominio: example.com
  • Imporre HTTPS e usare sempre l'indirizzo senza www
  • Compressione GZIP attiva
  • Caching: immagini per 1 mese, CSS e JavaScript per 1 settimana, HTML sempre da ricontrollare
  • Disattivare gli elenchi della directory

Output (.htaccess):

# .htaccess generato con il generatore .htaccess di ZAP-Hosting
# Prima del caricamento: crea una copia di sicurezza e verifica tutto in un ambiente di test.

# HTTPS e formato del dominio
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# Informazioni generali e sicurezza
Options -Indexes

# Compressione
<IfModule mod_deflate.c>
  AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript application/javascript application/json application/ld+json application/xml application/xhtml+xml application/rss+xml application/atom+xml image/svg+xml image/x-icon font/ttf font/otf application/vnd.ms-fontobject
</IfModule>

# Caching del browser
<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresByType image/jpeg "access plus 1 month"
  ExpiresByType image/png "access plus 1 month"
  ExpiresByType image/gif "access plus 1 month"
  ExpiresByType image/webp "access plus 1 month"
  ExpiresByType image/avif "access plus 1 month"
  ExpiresByType image/svg+xml "access plus 1 month"
  ExpiresByType image/x-icon "access plus 1 month"
  ExpiresByType text/css "access plus 1 week"
  ExpiresByType text/javascript "access plus 1 week"
  ExpiresByType application/javascript "access plus 1 week"
  ExpiresByType text/html "access plus 0 seconds"
  ExpiresByType application/xhtml+xml "access plus 0 seconds"
</IfModule>

Risultato in parole: un indirizzo come http://www.example.com/seite viene reindirizzato a https://example.com/seite con un unico reindirizzamento 301. Anche gli accessi tramite http:// senza www arrivano a https:// tramite un 301. Le immagini restano nella cache del browser per 1 mese (max-age=2592000), CSS e JavaScript per 1 settimana, mentre le pagine HTML vengono ricontrollate a ogni visita. HTML, CSS, JavaScript e JSON vengono trasmessi con compressione GZIP. Chi accede a una cartella senza file index non vede più l’elenco dei file, ma un errore 403.

Esempio 2: pagina di staging protetta da password

Input:

  • Testo della richiesta della password: staging
  • Percorso del file .htpasswd: /home/example/.htpasswd
  • Utente alice con password Sommer-2026!
  • Blocca i motori di ricerca

Output (.htaccess):

# .htaccess generato con il generatore .htaccess di ZAP-Hosting
# Prima del caricamento: crea una copia di sicurezza e verifica tutto in un ambiente di test.

# Protezione con password
AuthType Basic
AuthName "Staging"
AuthUserFile /home/example/.htpasswd
Require valid-user

<IfModule mod_headers.c>
  Header always set X-Robots-Tag "noindex, nofollow"
</IfModule>

Output (.htpasswd):

alice:$2y$10$EixZaYVK1fsbw1ZfbX3OXevuQZIxS3zUD8zrCJEoRasNwfjhtG6f.

Risultato in parole: i visitatori vedono una finestra di accesso con il testo «Staging». Senza un utente valido, il server restituisce lo stato 401. Il file .htpasswd contiene solo l'hash bcrypt: $2y$ indica bcrypt, 10 è il fattore di costo, seguito da salt e hash. La password non compare da nessuna parte. Il file va collocato nel percorso indicato da AuthUserFile, preferibilmente fuori dalla directory web.

Esempio 3: spostare una pagina, rimuoverne un’altra

Input:

  • /old-page reindirizza con un 301 a /new-page, inclusi tutti i percorsi sottostanti
  • /summer-sale è stato rimosso definitivamente (410), solo per questo percorso esatto

Output (.htaccess):

# .htaccess generato con il generatore .htaccess di ZAP-Hosting
# Prima del caricamento: crea una copia di sicurezza e verifica tutto in un ambiente di test.

# Reindirizzamenti personalizzati
Redirect 301 /old-page /new-page
RedirectMatch 410 "^/summer-sale/?$"

Risultato in parole: /old-page e /old-page/info vengono reindirizzati con 301 a /new-page e /new-page/info, quindi le sottopagine restano accessibili. /summer-sale restituisce lo stato 410 (Gone), affinché i motori di ricerca rimuovano più rapidamente la pagina dall'indice. Un indirizzo come /old-pages non viene modificato, perché la regola si applica solo ai confini dei segmenti del percorso. Lo strumento segnala inoltre che il browser memorizza permanentemente un 301 e che dovresti testare le nuove regole prima con 302.

Come funziona

Come puoi creare un file .htaccess

Quattro passaggi dalla scelta al file testato, senza account né installazione.

Passaggio 1

Seleziona i blocchi da costruzione

Inserisci il tuo dominio in alto e attiva i moduli che ti servono, oppure parti da un modello: «Buone impostazioni di base», «Proteggi lo staging» o «Trasferisci dominio». Ogni modulo spiega brevemente cosa fa.

Passaggio 2

Imposta le opzioni

Configura reindirizzamenti con 301, 302, 307, 308 o 410, utenti, pagine di errore o durate della cache. Lo strumento ti avvisa delle impostazioni rischiose, come cicli di reindirizzamento, protezione con password senza HTTPS o durate della cache eccessive.

Passaggio 3

Copia o scarica il file

L'output si aggiorna a ogni modifica. Copia il file .htaccess o scaricalo. Per la protezione con password viene generato anche il file .htpasswd con l'hash bcrypt; per i valori PHP, un file .user.ini.

Passaggio 4

Carica e testa

Salva il file esistente, inserisci quello nuovo nella directory principale del tuo dominio e apri la pagina. Prova i reindirizzamenti prima con 302 e solo dopo con 301.

Generatore htpasswd

Generatore htpasswd: crea un file .htpasswd con hash bcrypt

Per proteggere l'accesso con password tramite .htaccess, oltre al file .htaccess ti serve un file .htpasswd. Ogni riga contiene un utente con la password crittografata. Il generatore qui sopra crea la riga nella sezione «Protezione con password»; il tuo browser calcola l'hash e la password non viene inviata da nessuna parte.

Struttura di un file .htpasswd

Una riga per utente nel formato nome utente:hash. Esempio per l'utente e la password riportati sopra:

alice:$2y$10$EixZaYVK1fsbw1ZfbX3OXevuQZIxS3zUD8zrCJEoRasNwfjhtG6f.

Quale hash è sicuro?

bcrypt, riconoscibile da $2y$, è l'hash consigliato ed è supportato da Apache 2.4. I formati precedenti, come MD5 ($apr1$), SHA-1 o crypt, sono meno sicuri e più facili da violare. Per questo il generatore produce hash bcrypt.

Alternativa sul server

Con l'accesso alla shell puoi creare lo stesso file usando il programma htpasswd. L'opzione -B usa bcrypt, mentre -c crea un nuovo file:

htpasswd -cB .htpasswd benutzername

Attività frequenti

Reindirizzamento .htaccess, HTTPS, protezione con password e WordPress: regole da copiare

I quattro motivi più comuni per usare un file .htaccess, con regole già pronte. Adatti i percorsi e il dominio oppure li generi con lo strumento qui sopra.

Reindirizzamento (301) con .htaccess

Redirect 301 reindirizza permanentemente una pagina e tutti i percorsi subordinati. /alte-seite/info diventa /neue-seite/info. La regola va inserita nel file .htaccess nella directory principale del dominio.

Redirect 301 /alte-seite /neue-seite

Forzare HTTPS con .htaccess

Reindirizza ogni richiesta http a https con un redirect 301. Se il sito si trova dietro Cloudflare o un proxy, devi verificare anche l'header X-Forwarded-Proto, altrimenti si crea un ciclo di reindirizzamento.

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Protezione con password tramite .htaccess

Richiede nome utente e password per la directory. AuthUserFile deve contenere il percorso completo del server verso .htpasswd, preferibilmente fuori dalla directory web.

AuthType Basic
AuthName "Area protetta"
AuthUserFile /pfad/zur/.htpasswd
Require valid-user

.htaccess per WordPress

Questo è il blocco standard creato da WordPress. Non lo modificare. Le regole personalizzate, come i reindirizzamenti o HTTPS, vanno inserite prima di questo blocco, altrimenti non avranno effetto.

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Panoramica

Le direttive Apache alla base dei moduli

Ogni componente scrive nel file alcune direttive dai nomi chiari. La tabella mostra quali sono e quale modulo Apache le gestisce. Se manca un modulo facoltativo, Apache ignora il blocco anziché mostrare un errore.

Blocchi, direttive Apache e moduli responsabili
Blocco da costruzioneDirettiveModulo Apache
HTTPS e wwwRewriteCond, RewriteRule [R=301]mod_rewrite
ReindirizzamentiRedirect, RedirectMatch, RewriteRulemod_alias, mod_rewrite
Protezione con passwordAuthType Basic, AuthName, AuthUserFile, Require valid-usermod_auth_basic, mod_authn_file, mod_authz_user
Accesso IPRequire ip, Require not ip, RequireAny, RequireAllmod_authz_host, mod_authz_core
Pagine di erroreErrorDocumentcore
Caching del browserExpiresActive, ExpiresByTypemod_expires
CompressioneAddOutputFilterByType DEFLATE, BROTLI_COMPRESSmod_deflate, mod_brotli
Protezione dagli hotlinkRewriteCond %{HTTP_REFERER}, RewriteRule [F]mod_rewrite
SicurezzaOptions -Indexes, FilesMatch, ServerSignature Offcore, mod_authz_core
Header di sicurezzaHeader always setmod_headers
Valori PHPphp_value, .user.inimod_php

Scopri di più

Altri strumenti

FAQ

Domande frequenti su Generatore .htaccess

Risposte brevi su .htaccess, reindirizzamenti, protezione con password e questo strumento.

Il file .htaccess è un file di configurazione del server web Apache che si applica a una directory. Ti permette di gestire reindirizzamenti, protezione con password, pagine di errore, cache, compressione e regole di accesso senza modificare la configurazione del server. È particolarmente utile nell'hosting condiviso. Apache e il server web LiteSpeed leggono il file, mentre nginx lo ignora: in questo caso, le regole vanno inserite nella configurazione di nginx come blocchi server o location. Apache rilegge il file .htaccess a ogni richiesta. Su un server tuo, per esempio un VPS, è quindi meglio inserire le stesse regole direttamente nella configurazione dell'host virtuale.

Il file si chiama esattamente .htaccess, con un punto iniziale e senza estensione. Va collocato nella directory principale del tuo dominio, di solito public_html, htdocs o httpdocs. Le regole si applicano alla cartella che contiene il file e a tutte le sue sottocartelle. Poiché i file che iniziano con un punto sono considerati nascosti, il tuo programma FTP potrebbe non mostrarli. Abilita la visualizzazione dei file nascosti.

Il modo più semplice è la riga Redirect 301 /alte-seite /neue-seite. Reindirizza il percorso e tutto ciò che contiene: /alte-seite/info diventa quindi /neue-seite/info. Se vuoi reindirizzare un solo percorso preciso, usa RedirectMatch 301 con un'espressione regolare. Come destinazione puoi usare anche un indirizzo completo, come https://beispiel.de/seite. Il generatore crea entrambe le forme e ti avvisa se una regola genera un ciclo. Oltre a 301 (permanente), offre 302 (temporaneo), 307, 308 e 410 per le pagine rimosse. Prova prima le nuove regole con 302, perché i browser memorizzano un 301 in modo permanente.

Attiva il motore di riscrittura, verifica con RewriteCond se HTTPS è disattivato e usa RewriteRule per reindirizzare con un 301 all'indirizzo https. Il modulo „HTTPS e www“ genera il blocco pronto all'uso. Se il tuo sito è dietro Cloudflare, un Load Balancer o un Reverse Proxy, Apache spesso vede solo HTTP e continua a reindirizzare: nel browser compare ERR_TOO_MANY_REDIRECTS. In tal caso, attiva l'opzione „Dietro un proxy“, che controlla anche l'header X-Forwarded-Proto.

Ti servono due file: .htaccess con AuthType Basic, AuthName, AuthUserFile e Require valid-user, e .htpasswd con una riga per utente nel formato name:hash. Il generatore crea entrambi. La password viene elaborata con bcrypt nel tuo browser; riconosci l'hash dal prefisso $2y$. MD5 ($apr1$), SHA-1 e crypt sono meno sicuri. Salva il file .htpasswd fuori dalla directory web e attiva HTTPS, perché Basic Auth invia le credenziali a ogni richiesta. Se abbini la protezione con password al modulo «Accesso IP», scegli «IP o password» oppure «IP e password»: il generatore crea il blocco Require appropriato.

Un errore 500 significa quasi sempre che Apache non riesce a interpretare una riga. Le cause più comuni sono un errore di battitura, una direttiva il cui modulo non è presente sul server o un'impostazione non consentita dal tuo provider nel file .htaccess, come Options o php_value. Rinomina il file via FTP per ripristinare il sito. Trovi il dettaglio dell'errore nel log degli errori del server. I blocchi del generatore per cache, compressione, header e PHP sono protetti con IfModule e non causano errori 500 se i moduli mancano. php_value funziona solo se PHP viene eseguito come modulo Apache. Per PHP-FPM, il generatore fornisce i valori PHP anche in un file .user.ini.

WordPress crea automaticamente un blocco tra # BEGIN WordPress e # END WordPress, che devi lasciare invariato (si trova nella sezione qui sopra, pronto da copiare). Inserisci prima di quel blocco le regole generate. I reindirizzamenti e le regole HTTPS devono precedere il blocco WordPress, altrimenti non funzionano, perché WordPress indirizza tutte le richieste a index.php. WordPress richiede il motore di riscrittura per i permalink, quindi non lo disattivare.

No. Il generatore funziona interamente nel tuo browser: i dati che inserisci non vengono inviati a un server né salvati. Anche l'hash bcrypt viene creato localmente. Nell'indirizzo compaiono solo i nomi dei moduli attivati, mai domini, percorsi, indirizzi IP o password.

Hai altre domande?

Contatta il supporto
Stai creando qualcosa di tuo?

Con un server personale, le regole stanno dove devono stare: nella tua configurazione

Su un VPS di ZAP-Hosting gestisci autonomamente Apache o nginx, senza i limiti dell'hosting condiviso.

4,4/5 Trustpilot32.000+ Server attiviDal 2010

Nessuna configurazione. Nessun rischio. Online in pochi secondi.

Durata flessibileDisdicibile in qualsiasi momentoOnline in 60 secondi

Cerchi altri strumenti? Visualizza tutti gli strumenti per sviluppatori