Favivon - Correção

This commit is contained in:
2026-05-30 19:59:39 -03:00
parent 76ddaa815d
commit d7dfd221f0
32859 changed files with 5459654 additions and 404 deletions
BIN
View File
Binary file not shown.
+129
View File
@@ -0,0 +1,129 @@
# =============================================================================
# AVANZATO TECNOLOGIA - .htaccess para React SPA
# =============================================================================
# -----------------------------------------------------------------------------
# 1. REDIRECIONAMENTO PARA index.html (SPA - Single Page Application)
# -----------------------------------------------------------------------------
<IfModule mod_rewrite.c>
RewriteEngine On
# Não reescrever arquivos/diretórios reais
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
# Redirecionar tudo para index.html
RewriteRule ^ index.html [L]
</IfModule>
# -----------------------------------------------------------------------------
# 2. COMPRESSÃO GZIP (melhora performance)
# -----------------------------------------------------------------------------
<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI \
\.(?:gif|jpe?g|png|webp|ico|svgz)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \
\.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/json
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom+xml
AddOutputFilterByType DEFLATE font/truetype
AddOutputFilterByType DEFLATE font/opentype
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
AddOutputFilterByType DEFLATE image/svg+xml
</IfModule>
# -----------------------------------------------------------------------------
# 3. CACHE DE BROWSER (performance)
# -----------------------------------------------------------------------------
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/html "access plus 0 seconds"
<FilesMatch "\.(js|css)$">
ExpiresDefault "access plus 1 year"
</FilesMatch>
ExpiresByType image/gif "access plus 6 months"
ExpiresByType image/png "access plus 6 months"
ExpiresByType image/jpeg "access plus 6 months"
ExpiresByType image/webp "access plus 6 months"
ExpiresByType image/svg+xml "access plus 6 months"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresByType font/ttf "access plus 1 year"
ExpiresByType font/otf "access plus 1 year"
ExpiresByType font/woff "access plus 1 year"
ExpiresByType font/woff2 "access plus 1 year"
ExpiresByType application/vnd.ms-fontobject "access plus 1 year"
ExpiresByType application/json "access plus 1 hour"
ExpiresByType application/xml "access plus 1 hour"
</IfModule>
# -----------------------------------------------------------------------------
# 4. HEADERS DE SEGURANÇA
# -----------------------------------------------------------------------------
<IfModule mod_headers.c>
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-Content-Type-Options "nosniff"
Header always set X-XSS-Protection "1; mode=block"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
</IfModule>
# -----------------------------------------------------------------------------
# 5. TIPOS MIME CORRETOS
# -----------------------------------------------------------------------------
<IfModule mod_mime.c>
AddType application/javascript .js
AddType application/javascript .mjs
AddType text/css .css
AddType image/svg+xml .svg
AddType font/woff2 .woff2
AddType font/woff .woff
AddType font/ttf .ttf
AddType font/otf .otf
AddType application/json .json
AddType application/manifest+json .webmanifest
</IfModule>
# -----------------------------------------------------------------------------
# 6. PROTEÇÃO DE ARQUIVOS SENSÍVEIS
# -----------------------------------------------------------------------------
<IfModule mod_rewrite.c>
RewriteRule (^|/)\. - [F]
<FilesMatch "^\.">
Order allow,deny
Deny from all
</FilesMatch>
<FilesMatch "\.(git|gitignore|env|log|sql|sh|bash|zsh)$">
Order allow,deny
Deny from all
</FilesMatch>
</IfModule>
# -----------------------------------------------------------------------------
# 7. CHARSET PADRÃO
# -----------------------------------------------------------------------------
AddDefaultCharset UTF-8
# -----------------------------------------------------------------------------
# 8. DESATIVAR LISTAGEM DE DIRETÓRIOS
# -----------------------------------------------------------------------------
Options -Indexes
+244
View File
@@ -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
+2
View File
@@ -0,0 +1,2 @@
# Netlify redirects for SPA
/* /index.html 200
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

+246
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

+9
View File
@@ -0,0 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
<rect width="100" height="100" rx="20" fill="#0e0e0e"/>
<path d="M50 15 L75 75 H60 L55 60 H45 L40 75 H25 L50 15 Z M48 48 H52 L50 40 L48 48 Z"
fill="#cbf400"
stroke="#cbf400"
stroke-width="3"
stroke-linejoin="round"
stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 358 B

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

+232
View File
@@ -0,0 +1,232 @@
<!doctype html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<!-- Google tag (gtag.js) - Ads + Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=AW-16714813566"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
// LGPD/GDPR Consent Mode v2
// analytics_storage = 'denied' → GA4 coleta dados ANONIMIZADOS (sem cookies)
// Isso permite ver trafego SEM precisar de consentimento explicito
gtag('consent', 'default', {
ad_storage: 'denied',
analytics_storage: 'denied',
ad_user_data: 'denied',
ad_personalization: 'denied',
functionality_storage: 'granted', // Permite funcionalidade basica
security_storage: 'granted', // Permite seguranca
wait_for_update: 500
});
// IMPORTANTE: Ativar Consent Mode no painel do GA4
// GA4 → Admin → Account Settings → Consent Settings → Enable
gtag('js', new Date());
gtag('config', 'AW-16714813566');
gtag('config', 'G-LMHX8RJ3LH', { // GA4 - Avanzato
'send_page_view': true,
'cookie_expires': 63072000, // 2 anos
'cookie_update': true
});
</script>
<!-- Meta Pixel (Facebook) - ID: 1223271852059785 -->
<script>
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window, document,'script',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('init', '1223271852059785');
fbq('track', 'PageView');
</script>
<!-- Mautic Tracking -->
<script>
(function(w,d,t,u,n,a,m){
w['MauticTrackingObject']=n;
w[n]=w[n]||function(){(w[n].q=w[n].q||[]).push(arguments)},a=d.createElement(t),
m=d.getElementsByTagName(t)[0];a.async=1;a.src=u;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://mkt.avanzato.com.br/mtc.js','mt');
mt('send', 'pageview');
</script>
<!-- FIM Mautic Tracking -->
<!-- Preconnect to Google Fonts -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Urbanist:wght@400;500;600;700;800;900&display=swap" rel="stylesheet">
<!-- Primary Meta Tags -->
<title>Avanzato Tecnologia | TI Gerenciada, Cloud e Seguranca em Guarulhos/SP</title>
<meta name="title" content="Avanzato Tecnologia | TI Gerenciada, Cloud e Seguranca em Guarulhos/SP" />
<meta name="description" content="Solucoes em TI Gerenciada, Cloud Computing e Seguranca da Informacao. +23 anos de experiencia, +500 clientes atendidos. Suporte 24/7 em Guarulhos e regiao." />
<meta name="keywords" content="TI Gerenciada, Cloud Computing, Seguranca da Informacao, Suporte Tecnico, Tecnologia da Informacao, Guarulhos, Sao Paulo, Infraestrutura de TI, Backup, Firewall, Consultoria TI" />
<meta name="author" content="Avanzato Tecnologia" />
<meta name="robots" content="index, follow" id="meta-robots" />
<meta name="googlebot" content="index, follow" id="meta-googlebot" />
<!-- BLOQUEAR INDEXACAO EM HOMOLOGACAO -->
<script>
(function() {
var hostname = window.location.hostname;
if (hostname !== 'avanzato.com.br') {
// Homologacao: bloquear indexacao
document.getElementById('meta-robots').setAttribute('content', 'noindex, nofollow');
document.getElementById('meta-googlebot').setAttribute('content', 'noindex, nofollow');
// Adicionar tambem X-Robots-Tag via meta http-equiv
var meta = document.createElement('meta');
meta.httpEquiv = 'X-Robots-Tag';
meta.content = 'noindex, nofollow';
document.head.appendChild(meta);
console.log('%c[SEO] Homologacao detectada - indexacao BLOQUEADA (noindex, nofollow)', 'background:#dc2626;color:#fff;font-weight:bold;padding:2px 6px;border-radius:3px');
}
})();
</script>
<!-- Canonical URL -->
<link rel="canonical" href="https://avanzato.com.br" />
<!-- Open Graph / Facebook -->
<meta property="og:type" content="website" />
<meta property="og:url" content="https://avanzato.com.br" />
<meta property="og:title" content="Avanzato Tecnologia | TI Gerenciada, Cloud e Seguranca" />
<meta property="og:description" content="Solucoes em TI Gerenciada, Cloud Computing e Seguranca da Informacao. +23 anos de experiencia, suporte 24/7." />
<meta property="og:image" content="https://avanzato.com.br/og-image.jpg" />
<meta property="og:locale" content="pt_BR" />
<meta property="og:site_name" content="Avanzato Tecnologia" />
<!-- Twitter -->
<meta property="twitter:card" content="summary_large_image" />
<meta property="twitter:url" content="https://avanzato.com.br" />
<meta property="twitter:title" content="Avanzato Tecnologia | TI Gerenciada, Cloud e Seguranca" />
<meta property="twitter:description" content="Solucoes em TI Gerenciada, Cloud Computing e Seguranca da Informacao. +23 anos de experiencia, suporte 24/7." />
<meta property="twitter:image" content="https://avanzato.com.br/og-image.jpg" />
<!-- Favicon -->
<link rel="icon" type="image/svg+xml" href="./favicon.svg" />
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
<link rel="manifest" href="./site.webmanifest" />
<!-- Theme Color -->
<meta name="theme-color" content="#cbf400" />
<meta name="msapplication-TileColor" content="#0e0e0e" />
<!-- Structured Data / Schema.org -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Avanzato Tecnologia",
"alternateName": "Avanzato Tecnologia e Informatica",
"url": "https://avanzato.com.br",
"logo": "https://avanzato.com.br/logo.svg",
"description": "Solucoes em TI Gerenciada, Cloud Computing e Seguranca da Informacao. +23 anos de experiencia.",
"foundingDate": "2001",
"address": {
"@type": "PostalAddress",
"streetAddress": "Av. Dr. Carlos de Campos, 43 - Sl 05/06",
"addressLocality": "Guarulhos",
"addressRegion": "SP",
"postalCode": "07040-000",
"addressCountry": "BR"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": "-23.4686",
"longitude": "-46.5326"
},
"contactPoint": {
"@type": "ContactPoint",
"telephone": "+55-11-4810-1704",
"contactType": "customer service",
"availableLanguage": ["Portuguese"],
"areaServed": "BR"
},
"sameAs": [
"https://www.facebook.com/avanzatotec",
"https://www.linkedin.com/company/avanzato-tecnologia-e-informatica/",
"https://www.instagram.com/avanzato.tecnologia/",
"https://www.youtube.com/@AvanzatoTecnologia"
],
"openingHoursSpecification": {
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "08:00",
"closes": "18:00"
}
}
</script>
<!-- Local Business Schema -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Avanzato Tecnologia",
"image": "https://avanzato.com.br/logo.svg",
"@id": "https://avanzato.com.br",
"url": "https://avanzato.com.br",
"telephone": "+55-11-4810-1704",
"priceRange": "$$",
"address": {
"@type": "PostalAddress",
"streetAddress": "Av. Dr. Carlos de Campos, 43 - Sl 05/06, Parque Renato Maia",
"addressLocality": "Guarulhos",
"addressRegion": "SP",
"postalCode": "07040-000",
"addressCountry": "BR"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": -23.4686,
"longitude": -46.5326
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "08:00",
"closes": "18:00"
}
],
"department": {
"@type": "ComputerStore",
"name": "Departamento de TI",
"openingHours": "24/7"
}
}
</script>
<script type="module" crossorigin src="./assets/index-C1GgsDvQ.js"></script>
<link rel="stylesheet" crossorigin href="./assets/index-Cg4oF5jQ.css">
</head>
<body>
<div id="root"></div>
<!-- Facebook Pixel noscript (moved from head to body to fix parse5 warning) -->
<noscript>
<img height="1" width="1" style="display:none"
src="https://www.facebook.com/tr?id=1223271852059785&ev=PageView&noscript=1"/>
</noscript>
<!-- Noscript content for SEO -->
<noscript>
<div style="padding: 20px; text-align: center; font-family: Urbanist, Arial, sans-serif; background: #0e0e0e; color: white; min-height: 100vh;">
<h1 style="color: #cbf400;">Avanzato Tecnologia</h1>
<p>Para visualizar nosso site completo, por favor habilite o JavaScript no seu navegador.</p>
<p>Entre em contato: (11) 4810-1704 | contato@avanzato.com.br</p>
</div>
</noscript>
</body>
</html>
+19
View File
@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 60">
<!-- Symbol -->
<path d="M30 5 L50 50 H40 L36 38 H24 L20 50 H10 L30 5 Z M28 32 H32 L30 25 L28 32 Z"
fill="#cbf400"
stroke="#cbf400"
stroke-width="2.5"
stroke-linejoin="round"
stroke-linecap="round"/>
<!-- Text: avanzato. -->
<text x="65" y="38"
font-family="Urbanist, Arial, sans-serif"
font-size="28"
font-weight="700"
fill="#ffffff">avanzato</text>
<!-- Dot -->
<circle cx="188" cy="38" r="3" fill="#cbf400"/>
</svg>

After

Width:  |  Height:  |  Size: 579 B

+168
View File
@@ -0,0 +1,168 @@
# =============================================================================
# AVANZATO TECNOLOGIA - Configuração Nginx
# =============================================================================
# Coloque este arquivo em: /etc/nginx/sites-available/avanzato
# Depois crie link: sudo ln -s /etc/nginx/sites-available/avanzato /etc/nginx/sites-enabled/
# =============================================================================
server {
# Portas HTTP e HTTPS
listen 80;
# listen 443 ssl http2; # Descomente quando tiver SSL
# Domínio
server_name avanzato.com.br www.avanzato.com.br;
# Pasta raiz do site
root /var/www/avanzato/dist;
index index.html;
# Charset
charset utf-8;
# -------------------------------------------------------------------------
# LOGS
# -------------------------------------------------------------------------
access_log /var/log/nginx/avanzato-access.log;
error_log /var/log/nginx/avanzato-error.log;
# -------------------------------------------------------------------------
# GZIP (compressão)
# -------------------------------------------------------------------------
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_types
text/plain
text/css
text/xml
text/javascript
application/json
application/javascript
application/xml+rss
application/atom+xml
image/svg+xml;
# -------------------------------------------------------------------------
# CACHE DE BROWSER
# -------------------------------------------------------------------------
# Assets com hash (JS/CSS) - cache longo
location ~* \.(js|css)$ {
expires 1y;
add_header Cache-Control "public, immutable";
add_header Vary "Accept-Encoding";
}
# Imagens - cache médio
location ~* \.(png|jpg|jpeg|gif|ico|svg|webp)$ {
expires 6M;
add_header Cache-Control "public";
add_header Vary "Accept-Encoding";
}
# Fontes - cache longo
location ~* \.(woff|woff2|ttf|otf|eot)$ {
expires 1y;
add_header Cache-Control "public";
add_header Vary "Accept-Encoding";
}
# HTML - sem cache
location ~* \.html$ {
expires -1;
add_header Cache-Control "no-store, no-cache, must-revalidate";
}
# -------------------------------------------------------------------------
# SEGURANÇA - HEADERS
# -------------------------------------------------------------------------
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
# Content Security Policy (ajuste conforme necessário)
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://fonts.googleapis.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; img-src 'self' data: https:; connect-src 'self'; frame-src https://api.whatsapp.com;" always;
# HSTS (descomente quando tiver SSL)
# add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
# -------------------------------------------------------------------------
# REGRAS DE SEGURANÇA
# -------------------------------------------------------------------------
# Bloquear arquivos ocultos
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
# Bloquear arquivos de backup/sensíveis
location ~* \.(git|gitignore|env|log|sql|sh|bash|zsh|bak|backup|swp|tmp)$ {
deny all;
access_log off;
log_not_found off;
}
# Proteger arquivos de configuração
location ~* \.(htaccess|htpasswd|ini|conf)$ {
deny all;
access_log off;
log_not_found off;
}
# -------------------------------------------------------------------------
# SPA - Single Page Application (React)
# -------------------------------------------------------------------------
# Tentar arquivo estático, senão vai para index.html
location / {
try_files $uri $uri/ /index.html;
}
# -------------------------------------------------------------------------
# REDIRECIONAMENTOS
# -------------------------------------------------------------------------
# Forçar HTTPS (descomente quando tiver SSL)
# if ($scheme != "https") {
# return 301 https://$host$request_uri;
# }
# Remover www (opcional)
# if ($host ~* ^www\.(.*)$) {
# return 301 https://$1$request_uri;
# }
# -------------------------------------------------------------------------
# PÁGINAS DE ERRO PERSONALIZADAS
# -------------------------------------------------------------------------
error_page 404 /index.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/avanzato/dist;
internal;
}
# -------------------------------------------------------------------------
# LIMITE DE TAMANHO DE UPLOAD
# -------------------------------------------------------------------------
client_max_body_size 10M;
# -------------------------------------------------------------------------
# TIMEOUTS
# -------------------------------------------------------------------------
client_body_timeout 12;
client_header_timeout 12;
keepalive_timeout 15;
send_timeout 10;
}
# =============================================================================
# REDIRECIONAMENTO WWW (opcional)
# =============================================================================
# Se quiser forçar sem www:
# server {
# listen 80;
# server_name www.avanzato.com.br;
# return 301 $scheme://avanzato.com.br$request_uri;
# }
+11
View File
@@ -0,0 +1,11 @@
# =============================================================================
# ROBOTS.TXT - VERSAO PRODUCAO (avanzato.com.br)
# =============================================================================
# Substituir robots.txt por este arquivo ao fazer deploy em producao
# =============================================================================
User-agent: *
Allow: /
# Sitemap
Sitemap: https://avanzato.com.br/sitemap.xml
+26
View File
@@ -0,0 +1,26 @@
# =============================================================================
# ROBOTS.TXT - VERSAO HOMOLOGACAO/DESENVOLVIMENTO
# =============================================================================
# Este arquivo BLOQUEIA TODOS os crawlers.
#
# Para PRODUCAO (avanzato.com.br), substitua por:
# User-agent: *
# Allow: /
# Sitemap: https://avanzato.com.br/sitemap.xml
# =============================================================================
User-agent: *
Disallow: /
# Bloqueio explicito de todos os bots
User-agent: Googlebot
Disallow: /
User-agent: Bingbot
Disallow: /
User-agent: Slurp
Disallow: /
# Sitemap comentado (descomente em producao)
# Sitemap: https://avanzato.com.br/sitemap.xml
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

+21
View File
@@ -0,0 +1,21 @@
{
"name": "Avanzato Tecnologia",
"short_name": "Avanzato",
"description": "Soluções em TI Gerenciada, Cloud Computing e Segurança da Informação",
"start_url": "/",
"display": "standalone",
"background_color": "#0e0e0e",
"theme_color": "#cbf400",
"orientation": "portrait-primary",
"icons": [
{
"src": "/favicon.svg",
"sizes": "any",
"type": "image/svg+xml",
"purpose": "any maskable"
}
],
"categories": ["business", "technology"],
"lang": "pt-BR",
"dir": "ltr"
}
+168
View File
@@ -0,0 +1,168 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://avanzato.com.br/</loc>
<changefreq>weekly</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://avanzato.com.br/sobre</loc>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://avanzato.com.br/servicos/ti-gerenciada</loc>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://avanzato.com.br/servicos/cloud-computing</loc>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://avanzato.com.br/servicos/seguranca</loc>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://avanzato.com.br/servicos/suporte</loc>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://avanzato.com.br/servicos/redes</loc>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://avanzato.com.br/servicos/pabx</loc>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://avanzato.com.br/servicos/backup</loc>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://avanzato.com.br/servicos/servidores</loc>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://avanzato.com.br/servicos/consultoria</loc>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://avanzato.com.br/servicos/noc</loc>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://avanzato.com.br/tecnologia-para-condominios</loc>
<changefreq>weekly</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://avanzato.com.br/cases</loc>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://avanzato.com.br/blog</loc>
<changefreq>daily</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://avanzato.com.br/contato</loc>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://avanzato.com.br/avaliacao</loc>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://avanzato.com.br/privacidade</loc>
<changefreq>monthly</changefreq>
<priority>0.3</priority>
</url>
<url>
<loc>https://avanzato.com.br/termos</loc>
<changefreq>monthly</changefreq>
<priority>0.3</priority>
</url>
<url>
<loc>https://avanzato.com.br/tecnologias</loc>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://avanzato.com.br/suporte-windows-server</loc>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://avanzato.com.br/suporte-linux-empresas</loc>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://avanzato.com.br/suporte-pfsense</loc>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://avanzato.com.br/suporte-proxmox</loc>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://avanzato.com.br/suporte-vmware</loc>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://avanzato.com.br/suporte-sharepoint</loc>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://avanzato.com.br/suporte-redes-cisco</loc>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://avanzato.com.br/ti-para-contabilidades</loc>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://avanzato.com.br/ti-para-advocacias</loc>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://avanzato.com.br/monitoramento-empresarial</loc>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://avanzato.com.br/firewall-pfsense-empresarial</loc>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://avanzato.com.br/backup-corporativo</loc>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://avanzato.com.br/voip-empresarial</loc>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
</urlset>
+5
View File
@@ -0,0 +1,5 @@
{
"rewrites": [
{ "source": "/(.*)", "destination": "/index.html" }
]
}