Ir para o conteúdo
Ferramenta gratuita

Gerador de .htaccess e gerador de htpasswd

Com o gerador de .htaccess, você cria online um .htaccess pronto usando módulos como redirecionamento 301, HTTPS, proteção por senha, cache e compactação, além de um .htpasswd com hash bcrypt. Para example.com, por exemplo, são criadas regras 301 que redirecionam www.example.com e http para https://example.com. Grátis, sem cadastro e diretamente no navegador.

Criado por Dimitri Heissler

Você está criando algo próprio? Hospede em um VPS com controle total.

Opcional. Necessário apenas para a regra www e a proteção contra hotlink. Nesse caso, aplica-se exclusivamente a este domínio.

Início rápido

O arquivo final aparece abaixo dos componentes. Ir direto para a saída

HTTPS e www

Exige HTTPS e define se seu endereço usa www ou não.

Uma grafia uniforme evita conteúdo duplicado nos mecanismos de busca. Insira seu domínio acima para que a regra se aplique apenas a ele.

  • Se seu site está atrás do Cloudflare, de um balanceador de carga ou de um proxy reverso, o Apache muitas vezes vê apenas HTTP e redireciona sem parar (erro ERR_TOO_MANY_REDIRECTS). Nesse caso, ative “Atrás de um proxy”.

Redirecionamentos

Redireciona endereços antigos para novos ou migra o domínio inteiro.

Proteção por senha

Protege a página com nome de usuário e senha, por exemplo, uma versão de teste.

Acesso por IP

Permite apenas determinados endereços IP ou bloqueia endereços específicos.

Páginas de erro

Exibe páginas personalizadas para os erros 404, 403, 500 e outros.

Cache do navegador

Define por quanto tempo os navegadores armazenam imagens, estilos e fontes.

Imagens e fontes mudam raramente e podem ter prazos longos. Para CSS e JavaScript, use prazos longos apenas se os nomes dos arquivos incluírem um número de versão.

Compressão

Reduz o tamanho dos textos transmitidos com Brotli e GZIP, acelerando a transferência.

Apenas formatos de texto, como HTML, CSS, JavaScript, JSON, XML e SVG, são comprimidos. Imagens e vídeos já são comprimidos e permanecem inalterados.

Impede que outros sites incorporem suas imagens diretamente.

Segurança

Desativa a listagem de diretórios e bloqueia arquivos ocultos e Backups.

  • Options -Indexes causa um erro 500 em algumas hospedagens quando Options não é permitido no .htaccess. Nesse caso, remova a linha ou solicite AllowOverride Options ao suporte.

Cabeçalhos de segurança

Define X-Frame-Options, nosniff, Referrer-Policy, Permissions-Policy e HSTS.

Controla se outras páginas podem incorporar sua página em um frame.

  • A Permissions-Policy bloqueia o acesso da página à câmera, ao microfone e à localização. Se precisar de algum deles, por exemplo, para videochamadas ou mapas, ajuste a linha.

Valores do PHP

Aumenta o limite de upload, a memória e o tempo de execução do PHP.

Seus arquivos

5 componentes ativos

# .htaccess gerado com o gerador de .htaccess da ZAP-Hosting
# Antes de enviar: crie uma cópia de segurança e teste primeiro em um ambiente de teste.

# HTTPS e formato do domínio
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# Geral e segurança
Options -Indexes
AddDefaultCharset UTF-8
ServerSignature Off
<IfModule mod_headers.c>
  Header always unset X-Powered-By
  Header unset X-Powered-By
</IfModule>
RewriteCond %{REQUEST_URI} !(^|/)\.well-known/ [NC]
RewriteRule (^|/)\. - [F]
<FilesMatch "\.(bak|sql|log|ini|swp|dist|orig|old|conf)$|~$">
  Require all denied
</FilesMatch>

# Cabeçalhos de segurança
<IfModule mod_headers.c>
  Header always set X-Content-Type-Options "nosniff"
  Header always set X-Frame-Options "SAMEORIGIN"
  Header always set Referrer-Policy "strict-origin-when-cross-origin"
  Header always set Permissions-Policy "camera=(), microphone=(), geolocation=()"
</IfModule>

# Compressão
<IfModule mod_brotli.c>
  AddOutputFilterByType BROTLI_COMPRESS text/html text/plain text/css text/xml text/javascript application/javascript application/json application/ld+json application/xml application/xhtml+xml application/rss+xml application/atom+xml image/svg+xml image/x-icon font/ttf font/otf application/vnd.ms-fontobject
</IfModule>

<IfModule mod_deflate.c>
  AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript application/javascript application/json application/ld+json application/xml application/xhtml+xml application/rss+xml application/atom+xml image/svg+xml image/x-icon font/ttf font/otf application/vnd.ms-fontobject
</IfModule>

# Cache do navegador
<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresByType image/jpeg "access plus 1 month"
  ExpiresByType image/png "access plus 1 month"
  ExpiresByType image/gif "access plus 1 month"
  ExpiresByType image/webp "access plus 1 month"
  ExpiresByType image/avif "access plus 1 month"
  ExpiresByType image/svg+xml "access plus 1 month"
  ExpiresByType image/x-icon "access plus 1 month"
  ExpiresByType text/css "access plus 1 week"
  ExpiresByType text/javascript "access plus 1 week"
  ExpiresByType application/javascript "access plus 1 week"
  ExpiresByType font/woff "access plus 1 year"
  ExpiresByType font/woff2 "access plus 1 year"
  ExpiresByType font/ttf "access plus 1 year"
  ExpiresByType font/otf "access plus 1 year"
  ExpiresByType application/vnd.ms-fontobject "access plus 1 year"
  ExpiresByType video/mp4 "access plus 1 month"
  ExpiresByType video/webm "access plus 1 month"
  ExpiresByType audio/mpeg "access plus 1 month"
  ExpiresByType audio/ogg "access plus 1 month"
  ExpiresByType text/html "access plus 0 seconds"
  ExpiresByType application/xhtml+xml "access plus 0 seconds"
</IfModule>

64 linhas

Alguns navegadores removem o ponto inicial ou acrescentam .txt. Antes de enviar, renomeie o arquivo baixado para .htaccess.

O que você deve verificar

  • Se seu site está atrás do Cloudflare, de um balanceador de carga ou de um proxy reverso, o Apache muitas vezes vê apenas HTTP e redireciona sem parar (erro ERR_TOO_MANY_REDIRECTS). Nesse caso, ative “Atrás de um proxy”.

Antes do upload

  • Faça um Backup da .htaccess existente, caso já exista.
  • Teste o arquivo primeiro em uma página de staging, não na página em produção.
  • Coloque-o no diretório raiz do seu domínio (geralmente public_html ou htdocs). O nome começa com um ponto.
  • Se a página apresentar um erro 500 depois disso, renomeie o arquivo via FTP e verifique o log de erros do seu servidor.

Exemplo de resultado

O que este gerador de .htaccess oferece a você

Você ativa os recursos e recebe um arquivo .htaccess pronto para copiar ou baixar. Para a proteção por senha, também é gerado um .htpasswd com hash bcrypt; para valores de PHP, um .user.ini. Configurações arriscadas geram um aviso imediato. Três exemplos:

Exemplo 1: novo site em example.com

Entrada:

  • Domínio: example.com
  • Forçar HTTPS e usar sempre o endereço sem www
  • Compressão GZIP ativada
  • Cache: imagens por 1 mês, CSS e JavaScript por 1 semana; sempre revalidar HTML
  • Desativar listas de diretórios

Saída (.htaccess):

# .htaccess gerado com o gerador de .htaccess da ZAP-Hosting
# Antes de enviar: crie uma cópia de segurança e teste primeiro em um ambiente de teste.

# HTTPS e formato do domínio
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# Geral e segurança
Options -Indexes

# Compressão
<IfModule mod_deflate.c>
  AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript application/javascript application/json application/ld+json application/xml application/xhtml+xml application/rss+xml application/atom+xml image/svg+xml image/x-icon font/ttf font/otf application/vnd.ms-fontobject
</IfModule>

# Cache do navegador
<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresByType image/jpeg "access plus 1 month"
  ExpiresByType image/png "access plus 1 month"
  ExpiresByType image/gif "access plus 1 month"
  ExpiresByType image/webp "access plus 1 month"
  ExpiresByType image/avif "access plus 1 month"
  ExpiresByType image/svg+xml "access plus 1 month"
  ExpiresByType image/x-icon "access plus 1 month"
  ExpiresByType text/css "access plus 1 week"
  ExpiresByType text/javascript "access plus 1 week"
  ExpiresByType application/javascript "access plus 1 week"
  ExpiresByType text/html "access plus 0 seconds"
  ExpiresByType application/xhtml+xml "access plus 0 seconds"
</IfModule>

Resultado em palavras: um endereço como http://www.example.com/seite chega a https://example.com/seite com um único redirecionamento 301. Acessos por http:// sem www também são redirecionados por 301 para https://. As imagens permanecem 1 mês no cache do navegador (max-age=2592000), CSS e JavaScript permanecem 1 semana, e as páginas HTML são verificadas novamente a cada visita. HTML, CSS, JavaScript e JSON são transferidos com compressão GZIP. Quem acessa uma pasta sem arquivo index não vê mais uma lista de arquivos, mas recebe um erro 403.

Exemplo 2: página de teste com senha

Entrada:

  • Texto da solicitação de senha: Staging
  • Caminho do .htpasswd: /home/example/.htpasswd
  • Usuário alice com a senha Sommer-2026!
  • Bloquear mecanismos de busca

Saída (.htaccess):

# .htaccess gerado com o gerador de .htaccess da ZAP-Hosting
# Antes de enviar: crie uma cópia de segurança e teste primeiro em um ambiente de teste.

# Proteção por senha
AuthType Basic
AuthName "Staging"
AuthUserFile /home/example/.htpasswd
Require valid-user

<IfModule mod_headers.c>
  Header always set X-Robots-Tag "noindex, nofollow"
</IfModule>

Saída (.htpasswd):

alice:$2y$10$EixZaYVK1fsbw1ZfbX3OXevuQZIxS3zUD8zrCJEoRasNwfjhtG6f.

Resultado em palavras: Os visitantes veem uma janela de login com o texto “Staging”. Sem um usuário válido, o servidor retorna o status 401. O arquivo .htpasswd contém apenas o hash bcrypt: $2y$ indica bcrypt, 10 é o fator de custo, seguido pelo salt e pelo hash. A senha não aparece em nenhum lugar. O arquivo deve ficar no caminho indicado em AuthUserFile, de preferência fora do diretório web.

Exemplo 3: mover uma página e remover outra

Entrada:

  • /old-page redireciona com 301 para /new-page, incluindo todos os caminhos abaixo
  • /summer-sale foi removido permanentemente (410), apenas esse caminho exato

Saída (.htaccess):

# .htaccess gerado com o gerador de .htaccess da ZAP-Hosting
# Antes de enviar: crie uma cópia de segurança e teste primeiro em um ambiente de teste.

# Redirecionamentos personalizados
Redirect 301 /old-page /new-page
RedirectMatch 410 "^/summer-sale/?$"

Resultado em palavras: /old-page e /old-page/info são redirecionadas com 301 para /new-page e /new-page/info, preservando as subpáginas. /summer-sale retorna o status 410 (Gone) para que os mecanismos de busca removam a página do índice mais rapidamente. Um endereço como /old-pages não é afetado, pois a regra só se aplica aos limites do caminho. A ferramenta também avisa que o navegador armazena um 301 permanentemente e que você deve testar novas regras primeiro com 302.

Como funciona

Como criar um arquivo .htaccess

Quatro etapas da seleção ao arquivo testado — sem conta nem instalação.

Passo 1

Selecionar blocos de construção

Insira seu domínio acima e ative os módulos de que você precisa ou comece com um modelo: “Boa configuração básica”, “Proteger ambiente de staging” ou “Migrar domínio”. Cada módulo explica brevemente o que faz.

Passo 2

Configurar opções

Configure redirecionamentos com 301, 302, 307, 308 ou 410, usuários, páginas de erro ou períodos de cache. A ferramenta avisa sobre configurações arriscadas, como loops de redirecionamento, falta de HTTPS na proteção por senha ou períodos de cache longos demais.

Passo 3

Copiar ou baixar arquivo

A saída é atualizada a cada alteração. Copie o .htaccess ou baixe o arquivo. Para a proteção por senha, há também o .htpasswd com o hash bcrypt; para valores de PHP, um arquivo .user.ini.

Passo 4

Enviar e testar

Faça um Backup do arquivo existente, coloque o novo no diretório raiz do seu domínio e acesse a página. Teste os redirecionamentos primeiro com 302 e só depois com 301.

Gerador de htpasswd

Gerador de htpasswd: crie um .htpasswd com hash bcrypt

Para proteger com senha usando .htaccess, você precisa de um arquivo .htpasswd além do .htaccess. Cada linha contém um usuário e sua senha criptografada. O gerador acima cria a linha na seção “Proteção por senha”; seu navegador calcula o hash, e a senha não é enviada a nenhum lugar.

Estrutura de um .htpasswd

Uma linha por usuário, no formato nome de usuário:hash. Exemplo para o usuário e a senha do exemplo acima:

alice:$2y$10$EixZaYVK1fsbw1ZfbX3OXevuQZIxS3zUD8zrCJEoRasNwfjhtG6f.

Qual hash é seguro?

bcrypt, identificado por $2y$, é o hash recomendado e tem suporte no Apache 2.4. Formatos antigos como MD5 ($apr1$), SHA-1 ou crypt são mais fracos e podem ser quebrados mais rapidamente. Por isso, o gerador cria hashes bcrypt.

Alternativa no servidor

Com acesso ao shell, você cria o mesmo arquivo com o programa htpasswd. A opção -B usa bcrypt, e -c cria um novo arquivo:

htpasswd -cB .htpasswd benutzername

Tarefas frequentes

Redirecionamento, HTTPS, proteção por senha e WordPress com .htaccess: regras para copiar

Os quatro motivos mais comuns para usar um arquivo .htaccess, com regras prontas. Ajuste os caminhos e o domínio ou gere-os com a ferramenta acima.

Redirecionamento (301) com .htaccess

Redirect 301 redireciona permanentemente uma página e tudo abaixo dela. /alte-seite/info passa a ser /neue-seite/info. A regra deve ficar no arquivo .htaccess no diretório raiz do domínio.

Redirect 301 /alte-seite /neue-seite

Forçar HTTPS com .htaccess

Redireciona todas as solicitações http para https com 301. Se o site estiver atrás do Cloudflare ou de um proxy, você também precisará verificar o cabeçalho X-Forwarded-Proto; caso contrário, ocorrerá um loop de redirecionamento.

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Proteção por senha com .htaccess

Solicita nome de usuário e senha para acessar o diretório. Em AuthUserFile, informe o caminho completo do servidor até o arquivo .htpasswd, preferencialmente fora do diretório web.

AuthType Basic
AuthName "Área protegida"
AuthUserFile /pfad/zur/.htpasswd
Require valid-user

.htaccess para WordPress

Este é o bloco padrão criado pelo próprio WordPress. Não o altere. Regras personalizadas, como redirecionamentos ou HTTPS, devem vir antes dele; caso contrário, não terão efeito.

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Visão geral

As diretivas do Apache usadas nestes componentes

Cada componente adiciona ao arquivo algumas diretivas com nomes claros. A tabela mostra quais são elas e qual módulo do Apache é responsável por cada uma. Se um módulo opcional estiver ausente, o Apache ignora o bloco em vez de exibir um erro.

Blocos de construção, diretivas do Apache e módulos responsáveis
Bloco de construçãoDiretivasMódulo Apache
HTTPS e wwwRewriteCond, RewriteRule [R=301]mod_rewrite
RedirecionamentosRedirect, RedirectMatch, RewriteRulemod_alias, mod_rewrite
Proteção por senhaAuthType Basic, AuthName, AuthUserFile, Require valid-usermod_auth_basic, mod_authn_file, mod_authz_user
Acesso por IPRequire ip, Require not ip, RequireAny, RequireAllmod_authz_host, mod_authz_core
Páginas de erroErrorDocumentcore
Cache do navegadorExpiresActive, ExpiresByTypemod_expires
CompressãoAddOutputFilterByType DEFLATE, BROTLI_COMPRESSmod_deflate, mod_brotli
Proteção contra hotlinkRewriteCond %{HTTP_REFERER}, RewriteRule [F]mod_rewrite
SegurançaOptions -Indexes, FilesMatch, ServerSignature Offcore, mod_authz_core
Cabeçalhos de segurançaHeader always setmod_headers
Valores do PHPphp_value, .user.inimod_php

Descobrir mais

Mais ferramentas

FAQ

Perguntas frequentes sobre Gerador de .htaccess

Respostas breves sobre .htaccess, redirecionamentos, proteção por senha e esta ferramenta.

O .htaccess é um arquivo de configuração do servidor web Apache que se aplica a cada diretório. Com ele, você controla redirecionamentos, proteção por senha, páginas de erro, cache, compactação e regras de acesso sem precisar alterar a configuração do servidor. Isso é especialmente útil na hospedagem compartilhada. O Apache e o servidor web LiteSpeed leem o arquivo, mas o nginx o ignora: nele, as regras devem ficar em blocos server ou location na configuração do nginx. O Apache lê o .htaccess novamente a cada requisição. Por isso, em um servidor próprio, como um VPS, é melhor colocar as mesmas regras diretamente na configuração do host virtual.

O arquivo se chama exatamente .htaccess, com um ponto no início e sem extensão. Ele deve ficar no diretório principal do seu domínio, geralmente public_html, htdocs ou httpdocs. As regras valem para a pasta que contém o arquivo e todas as suas subpastas. Como arquivos que começam com ponto são considerados ocultos, seu programa de FTP pode não exibi-los. Ative a exibição de arquivos ocultos nele.

A maneira mais simples é a linha Redirect 301 /alte-seite /neue-seite. Ela redireciona o caminho e tudo o que está abaixo dele: /alte-seite/info passa a ser /neue-seite/info. Para redirecionar apenas um caminho específico, use RedirectMatch 301 com uma expressão regular. O destino também pode ser um endereço completo, como https://beispiel.de/seite. O gerador cria as duas formas para você e avisa se uma regra causar um loop. Além do 301 (permanente), ele oferece 302 (temporário), 307, 308 e 410 para páginas removidas. Teste regras novas primeiro com 302, pois os navegadores armazenam redirecionamentos 301 de forma permanente.

Você ativa o mecanismo de reescrita, usa RewriteCond para verificar se HTTPS está desativado e redireciona com RewriteRule e o código 301 para o endereço https. O recurso “HTTPS e www” gera o bloco pronto. Se o seu site estiver por trás do Cloudflare, de um load balancer ou de um reverse proxy, o Apache geralmente verá apenas HTTP e fará redirecionamentos sem fim; o navegador exibirá ERR_TOO_MANY_REDIRECTS. Nesse caso, ative a opção “Atrás de um proxy”, que também verifica o cabeçalho X-Forwarded-Proto.

Você precisa de dois arquivos: o .htaccess com AuthType Basic, AuthName, AuthUserFile e Require valid-user, e o .htpasswd com uma linha por usuário no formato name:hash. O gerador cria ambos. A senha recebe um hash bcrypt no seu navegador, identificado por $2y$ no início. MD5 ($apr1$), SHA-1 e crypt são mais fracos. Coloque o .htpasswd fora do diretório web e ative o HTTPS, pois a autenticação Basic envia as credenciais a cada requisição. Se você combinar a proteção por senha com o módulo “Acesso por IP”, escolha “IP ou senha” ou “IP e senha”; o gerador criará o bloco Require correspondente.

Um erro 500 quase sempre significa que o Apache não entende uma linha. As causas comuns são um erro de digitação, uma diretiva cujo módulo não está disponível no servidor ou uma configuração que seu provedor de hospedagem não permite no .htaccess, como Options ou php_value. Renomeie o arquivo via FTP para que o site volte a funcionar. O log de erros do servidor informa o problema exato. Os blocos do gerador para cache, compactação, cabeçalhos e PHP são protegidos por IfModule e não causam um erro 500 se os módulos estiverem ausentes. php_value só funciona quando o PHP é executado como módulo do Apache. Para PHP-FPM, o gerador também fornece os valores de PHP em um arquivo .user.ini.

O WordPress cria automaticamente um bloco entre # BEGIN WordPress e # END WordPress, que você deve deixar inalterado (ele está na seção acima para copiar). Insira as regras criadas pelo gerador antes desse bloco. As regras de redirecionamento e HTTPS devem vir antes do bloco do WordPress; caso contrário, não funcionarão, pois o WordPress encaminha todas as solicitações para index.php. O WordPress precisa do mecanismo de reescrita para os permalinks, então não o desative.

Não. O gerador funciona inteiramente no seu navegador: seus dados não são enviados a nenhum servidor nem salvos. O hash bcrypt também é gerado localmente. Apenas os nomes dos módulos ativados aparecem no endereço, nunca domínios, caminhos, endereços IP ou senhas.

Mais alguma pergunta?

Contatar o suporte
Você está criando algo próprio?

Com um servidor próprio, as regras ficam onde devem estar: nas suas configurações

Em um VPS da ZAP-Hosting, você controla o Apache ou o nginx sem as limitações da hospedagem compartilhada.

4,4/5 Trustpilot32.000+ Servidores ativosDesde 2010

Sem configuração. Sem riscos. Online em segundos.

Duração flexívelCancele a qualquer momentoOnline em 60 segundos

Procurando mais ferramentas? Ver todas as ferramentas para desenvolvedores