Em vários servidores web (geralmente Apache), .htaccess (hypertext access) é o nome padrão de um arquivo de configuração em nível de diretório que permite um gerenciamento descentralizado das configurações do servidor web. Ele é colocado dentro de cada diretório ou subdiretório onde se deseja subescrever as configurações de escopo global; o alcance desta subconfiguração é determinada pelo administrador do servidor. O propósito original do.htaccess era permitir o controle de acesso por diretório (ex.: solicitar senha para acessar conteúdo), daí o seu nome. Hoje em dia, esse arquivo é capaz de sobrescrever muitas outras configurações do servidor, principalmente no que se refere a controle de conteúdo (ex.: tipo de conteúdo e Codificação de caracteres, CGI handlers, etc.).
No Apache, o formato dos arquivos.htaccess é igual ao do arquivo de configuração global do servidor; outros servidores web (tais como Sun Java System Web Server e Zeus Web Server) implementam a mesma sintaxe, porém seus arquivos de configuração globais são totalmente diferentes. As diretivas contidas no arquivo.htaccess aplicam-se tão somente ao diretório onde o arquivo.htacess reside, bem como seus subdiretórios (a não ser que esteja explicitamente desabilitado), mas por razões de performance e segurança este não pode afetar os diretórios ascendentes.
Usos mais comuns
- Autorização, autenticação
- arquivos.htaccess são muito usados para especificar restrições de segurança para um diretório específico, daí a palavra "access" em seu nome. É comum o.htaccess vir acompanhado de um arquivo .htpasswd o qual pode armazenar usuários válidos e suas respectivas senhas.[3]
- Rewriting URLs
- servidores geralmente usam.htaccess para reescrever URLs longas e as vezes incompreensíves para URLs mais curtas e fáceis de se memorizar.
- Blocking
- usa allow/deny para bloquear usuários por endereço de IP ou domínio. Também usa para bloquear bad bots, rippers e referrers.
- SSI
- habilita server-side includes.
- Lista de diretórios
- controla como o servidor irá reagir quando uma página web não é especificada.
- Respostas de erros customizadas
- muda a página a ser mostrada quando um erro ocorre no lado do servidor, por exemplo HTTP 404 Not Found.
- Tipo MIME
- instrui o servidor a como tratar as diferentes extensões de arquivos.
- Cache Control
- arquivos.htaccess permitem que servidores controlem o caching dos navegadores e proxies para reduzir o bandwidth.