O que é o formato de ficheiro HTACCESS?
.htaccess é um arquivo de configuração do servidor web Apache. Ao contrário da maioria dos arquivos, o .htaccess não inclui um nome de arquivo antes do ponto - o ponto inicial faz parte do próprio nome, tornando-o um arquivo oculto por padrão no Linux e macOS. Arquivos .htaccess não devem ser editados manualmente por usuários não autorizados ou não qualificados. O arquivo armazena toda a configuração em texto simples.
Arquivos .htaccess contêm definições de configuração por diretório que definem funções do servidor, tais como:
- a página de índice (padrão) de um diretório,
- restrições de acesso para endereços IP específicos,
- páginas de erro personalizadas (ex: 404 Página Não Encontrada),
- redirecionamentos e reescritas de URL (
RewriteRule/RewriteCond), - proteção de diretórios por senha (
AuthType,AuthUserFile), - configurações adicionais de segurança do servidor e cabeçalhos de resposta HTTP personalizados.
Para que o .htaccess tenha efeito, o AllowOverride deve estar definido como algo diferente de None no httpd.conf pai - em servidores com segurança reforçada, o processamento de .htaccess é frequentemente desativado por completo.
Como o Apache lê o .htaccess em cada requisição HTTP para o seu diretório, ele acarreta um custo de desempenho mensurável. A própria documentação do Apache recomenda colocar diretivas equivalentes em blocos de configuração do servidor ou VirtualHost, pois estes são carregados apenas uma vez na inicialização.
O .htaccess é específico para o Apache; o Nginx não o suporta e exige regras equivalentes no nginx.conf. O arquivo complementar .htpasswd armazena credenciais criptografadas para Autenticação Básica HTTP.
Segurança e proteção
RISCO: HIGHO .htaccess em si é um arquivo de texto inofensivo para abrir em um editor. No entanto, ele representa uma superfície de ataque CRÍTICA em servidores web: 1. Ataque de upload: se uma aplicação web permite que usuários enviem arquivos para um diretório acessível pela web e o AllowOverride do Apache permite .htaccess, um invasor que enviar um .htaccess mal-intencionado pode reativar a execução de PHP em um diretório de upload e executar webshells. Mitigação: armazene uploads fora da raiz do documento; defina AllowOverride None para diretórios de upload; bloqueie a criação de .htaccess em diretórios de upload. 2. Divulgação de informações: um servidor mal configurado que serve o .htaccess como um arquivo de texto (em vez de bloquear o acesso a arquivos de ponto) expõe a configuração do servidor, a estrutura de diretórios e, potencialmente, referências a credenciais. A configuração padrão do Apache bloqueia o acesso a arquivos .htaccess (FilesMatch ^\.ht).
Detalhes do formato
em resumoProgramas que abrem arquivos HTACCESS
Detalhes técnicos
especificação profunda| Origem | Herdado do NCSA HTTPd (1994); o Apache HTTP Server o suporta desde a versão 1.0 (1995) |
| Nome do arquivo | Dotfile - o nome completo do arquivo é `.htaccess`; oculto por padrão no Unix e macOS |
| Tipo de arquivo | Configuração do Apache por diretório em texto simples |
| Codificação | UTF-8 ou ASCII (deve corresponder à localidade do servidor) |
| Tamanho típico do arquivo | 100 bytes - 50 KB (maioria dos arquivos abaixo de 5 KB) |
| Frequência de processamento | Lido pelo Apache em cada requisição HTTP para o diretório que o contém e todos os subdiretórios |
| Pré-requisito | `AllowOverride` não deve ser `None` no `httpd.conf` pai; caso contrário, o `.htaccess` é ignorado silenciosamente |
| Diretivas comuns | `RewriteRule`, `RewriteCond`, `ErrorDocument`, `AuthType`, `AuthUserFile`, `Header`, `Options`, `Redirect` |
| Sintaxe de controle de acesso | O Apache 2.4 substituiu `Allow`/`Deny` por `Require`; a sintaxe antiga exige o `mod_access_compat` |
| Compatibilidade com Nginx | Não suportado pelo Nginx; as regras devem ser traduzidas manualmente para diretivas do `nginx.conf` |
| Nota de desempenho | Causa leituras de disco por requisição; o Apache recomenda preferir blocos `httpd.conf` ou VirtualHost para configuração |
| Risco de segurança | Um `.htaccess` enviado por um invasor em um diretório web com permissão de escrita pode permitir a execução de scripts no lado do servidor |
| Lançado | 1994 (NCSA HTTPd, predecessor to Apache; Apache inherited it from 1995) |
| Versão mais recente | Apache HTTP Server 2.4.x directive syntax (current) |
| Padrão aberto | Sim · livre de royalties |
| Especificação | httpd.apache.org |
Conversões de HTACCESS
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos HTACCESS.