Versão inicial do site Avanzato
This commit is contained in:
@@ -0,0 +1,244 @@
|
||||
# 📁 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
|
||||
<IfModule mod_rewrite.c>
|
||||
RewriteCond %{HTTPS} off
|
||||
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
|
||||
</IfModule>
|
||||
|
||||
# HSTS (segurança extra)
|
||||
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
|
||||
```
|
||||
|
||||
### Forçar SEM www
|
||||
|
||||
```apache
|
||||
<IfModule mod_rewrite.c>
|
||||
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
|
||||
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
|
||||
</IfModule>
|
||||
```
|
||||
|
||||
### Forçar COM www
|
||||
|
||||
```apache
|
||||
<IfModule mod_rewrite.c>
|
||||
RewriteCond %{HTTP_HOST} !^www\. [NC]
|
||||
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
|
||||
</IfModule>
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ❌ 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
|
||||
Reference in New Issue
Block a user