# 📁 Guia do .htaccess - Avanzato Tecnologia ## O que é o .htaccess? O `.htaccess` é um arquivo de configuração do Apache (servidor web) que controla: - ✅ Redirecionamentos - ✅ Compressão de arquivos - ✅ Cache do navegador - ✅ Segurança - ✅ Performance --- ## 📂 Onde colocar o arquivo? ``` /public_html/ ← Raiz do seu site ├── .htaccess ← COLOQUE AQUI ├── index.html ├── assets/ └── ... ``` **IMPORTANTE:** O arquivo deve estar na **mesma pasta** do `index.html` --- ## 📋 Arquivos disponíveis | Arquivo | Quando usar | |---------|-------------| | `.htaccess` | Versão **completa** (recomendada) | | `.htaccess-simples` | Se o servidor der erro 500 | --- ## 🚀 Como instalar ### Método 1: FTP/cPanel 1. Acesse seu servidor via FTP ou cPanel 2. Vá para a pasta `public_html/` (ou `www/`) 3. Faça upload do arquivo `.htaccess` 4. Pronto! ### Método 2: SSH ```bash # Conecte ao servidor ssh usuario@seudominio.com.br # Vá para a pasta do site cd /var/www/html # ou cd /home/usuario/public_html # Crie o arquivo nano .htaccess # Cole o conteúdo do .htaccess # Salve: Ctrl+O, Enter, Ctrl+X ``` --- ## ⚙️ Configurações incluídas ### 1. **SPA (Single Page Application)** ```apache RewriteRule ^ index.html [L] ``` → Todas as URLs vão para `index.html` (necessário para React) ### 2. **Compressão GZIP** ```apache AddOutputFilterByType DEFLATE text/css application/javascript ``` → Reduz tamanho dos arquivos em ~70% ### 3. **Cache do Navegador** ```apache ExpiresByType application/javascript "access plus 1 year" ``` → Arquivos JS/CSS ficam no cache por 1 ano ### 4. **Segurança** - Proteção contra clickjacking - Proteção contra MIME sniffing - Bloqueio de arquivos ocultos (.git, .env) --- ## 🔧 Configurações opcionais ### Ativar HTTPS (quando tiver SSL) Descomente estas linhas no `.htaccess`: ```apache # Forçar HTTPS RewriteCond %{HTTPS} off RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] # HSTS (segurança extra) Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" ``` ### Forçar SEM www ```apache RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L] ``` ### Forçar COM www ```apache RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] ``` --- ## ❌ Problemas comuns ### Erro 500 (Internal Server Error) **Causa:** Seu servidor não tem todos os módulos habilitados **Solução:** Use o `.htaccess-simples` ```bash # Renomeie o arquivo mv .htaccess .htaccess-backup mv .htaccess-simples .htaccess ``` ### Página em branco **Causa:** O mod_rewrite pode estar desativado **Solução:** Contate seu provedor de hospedagem para ativar: - `mod_rewrite` - `mod_deflate` - `mod_expires` - `mod_headers` ### Rotas não funcionam (404 em /sobre, /contato) **Causa:** O redirecionamento para index.html não está funcionando **Solução:** Verifique se o arquivo .htaccess está na pasta correta --- ## 📊 Testar se está funcionando ### 1. Testar compressão GZIP ```bash curl -H "Accept-Encoding: gzip" -I https://seudominio.com.br ``` Deve mostrar: `Content-Encoding: gzip` ### 2. Testar headers de segurança ```bash curl -I https://seudominio.com.br ``` Deve mostrar: - `X-Frame-Options: SAMEORIGIN` - `X-Content-Type-Options: nosniff` ### 3. Testar cache ```bash curl -I https://seudominio.com.br/assets/index-xxx.js ``` Deve mostrar: `Cache-Control: max-age=31536000` --- ## 🌐 Servidores específicos ### cPanel (Hostgator, Locaweb, etc) 1. Acesse: **Arquivos** → **Gerenciador de Arquivos** 2. Vá para `public_html/` 3. Clique em **Upload** e envie o `.htaccess` ### AWS S3 + CloudFront O S3 não usa .htaccess. Configure: - **Error Document:** `index.html` - CloudFront: **Custom Error Response** 404 → 200 para `index.html` ### Vercel/Netlify Não precisa de .htaccess. Use `vercel.json` ou `_redirects`: ``` /* /index.html 200 ``` ### Nginx (servidor diferente) Se usar Nginx, crie um arquivo de configuração: ```nginx location / { try_files $uri $uri/ /index.html; } gzip on; gzip_types text/css application/javascript; ``` --- ## 📞 Suporte Se tiver problemas, verifique: 1. O arquivo está na pasta correta? 2. O nome do arquivo é exatamente `.htaccess` (com ponto)? 3. As permissões do arquivo são 644? ```bash # Corrigir permissões chmod 644 .htaccess ``` --- ## ✅ Checklist de instalação - [ ] Arquivo `.htaccess` na pasta `public_html/` - [ ] Site carrega normalmente (sem erro 500) - [ ] Navegação entre páginas funciona - [ ] Atualizar página (F5) não dá erro 404 - [ ] GZIP está ativo (teste com GTmetrix) - [ ] Cache está funcionando --- **Última atualização:** 2024 **Versão:** 1.0