Gerador de .htaccess
Opções
# --- 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>Perguntas frequentes
O que convém saber sobre o ficheiro .htaccess
O que é o ficheiro .htaccess e onde se põe?
O .htaccess é um ficheiro de configuração do servidor Apache que permite definir regras ao nível da pasta: redirecionamentos, reescrita de endereços, segurança, cache e compressão. Põe-se na pasta raiz do site, normalmente public_html ou www, e vale para ela e para as subpastas. O nome começa por um ponto e não tem extensão.
Funciona em Nginx?
Não, o .htaccess é específico do Apache e de servidores compatíveis como o LiteSpeed. O Nginx não o usa: as mesmas regras têm de ser traduzidas na configuração do servidor, nos blocos server e location do nginx.conf. Se o seu alojamento for Nginx, o ficheiro não faz nada.
Depois de carregar o ficheiro o site dá erro 500, porquê?
Um erro 500 depois de mexer no .htaccess costuma querer dizer que falta um módulo necessário — mod_rewrite, mod_deflate, mod_expires — ou que há um erro de sintaxe. As regras aqui estão dentro de blocos <IfModule> precisamente para não rebentar se faltar um módulo. Se persistir, retire as regras uma a uma para descobrir a culpada e pergunte ao seu alojamento que módulos estão ativos. Guarde sempre uma cópia do ficheiro anterior.
O que é o ficheiro htaccess?
É o ficheiro de configuração que define regras para uma única pasta no Apache: redirecionamentos, reescrita de endereços, cache, compressão e restrições. Fica na pasta raiz do site.
Funciona também em Nginx?
Não, o htaccess é lido pelo Apache e por servidores compatíveis como o LiteSpeed. Em Nginx as mesmas regras têm de ser reescritas na configuração do servidor, nos blocos server e location.
Porque é que o site dá erro 500 depois da alteração?
Normalmente falta um dos módulos mod_rewrite, mod_deflate ou mod_expires, ou há um erro de sintaxe. É por isso que as regras geradas ficam dentro de blocos IfModule, que as desligam quando o módulo não existe.