Generatore .htaccess
Opzioni
# --- Rewrite rules ---
<IfModule mod_rewrite.c>
RewriteEngine On
# Force HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Redirect www to non-www
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [L,R=301]
</IfModule>
# --- Gzip compression ---
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript
AddOutputFilterByType DEFLATE application/javascript application/x-javascript application/json
AddOutputFilterByType DEFLATE application/xml application/rss+xml image/svg+xml
</IfModule>
# --- Browser caching ---
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/webp "access plus 1 year"
ExpiresByType image/svg+xml "access plus 1 year"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType text/html "access plus 1 day"
</IfModule>Domande Frequenti
Tutto quello che devi sapere sul file .htaccess
Cos'è il file .htaccess e dove va messo?
Il file .htaccess è un file di configurazione del server web Apache che permette di definire regole a livello di directory: redirect, riscrittura URL, sicurezza, cache e compressione. Va posizionato nella cartella radice del tuo sito (di solito public_html o www) e ha effetto su quella cartella e le sue sottocartelle. Il nome inizia con un punto e non ha estensione.
Funziona su Nginx?
No, il file .htaccess è specifico di Apache (e server compatibili come LiteSpeed). Nginx non usa .htaccess: le stesse regole vanno tradotte nella configurazione del server (blocchi server/location in nginx.conf). Se il tuo hosting usa Nginx, questo file non avrà effetto.
Il mio sito dà errore 500 dopo aver caricato il file, perché?
Un errore 500 dopo la modifica di .htaccess di solito significa che un modulo richiesto (mod_rewrite, mod_deflate, mod_expires) non è abilitato sul server, oppure c'è un errore di sintassi. Le regole qui sono racchiuse in blocchi <IfModule> proprio per evitare crash se un modulo manca. Se persiste, rimuovi le regole una alla volta per individuare quella problematica e verifica con il tuo hosting quali moduli sono attivi. Fai sempre un backup del file precedente.
htaccess 是什么文件?
它是 Apache 上给单个目录设定规则的配置文件:跳转、地址重写、缓存、压缩和访问限制。文件放在站点的根目录里。
在 Nginx 上也能用吗?
不能。htaccess 只有 Apache 和 LiteSpeed 这类兼容服务器会读。在 Nginx 上,同样的规则要写进服务器配置的 server 和 location 块里。
改完之后网站报 500 错误怎么办?
通常是 mod_rewrite、mod_deflate 或 mod_expires 其中一个模块没装,或者有语法错误。所以生成的规则都放在 IfModule 块里,模块不在时会自动失效。