.htaccess - .htaccess
Um .htaccess ( hipertexto acesso de arquivo) é um diretório -level arquivo de configuração apoiada por vários servidores web , usados para a configuração do site questões -acesso, como a URL de redirecionamento , encurtamento de URL , controle de acesso (para diferentes páginas da web e arquivos), e mais. O 'ponto' (ponto final ou ponto final ) antes do nome do arquivo o torna um arquivo oculto em ambientes baseados em Unix .
Um site pode ter mais de um .htaccessarquivo e os arquivos são colocados dentro da árvore da web (ou seja, dentro de diretórios e seus subdiretórios) e, portanto, seus outros nomes de arquivos de configuração distribuídos .
.htaccessos arquivos atuam como um subconjunto do arquivo de configuração global do servidor (como httpd.conf) para o diretório em que estão ou para todos os subdiretórios.
O propósito original de .htaccess—refletido em seu nome — era permitir o controle de acesso por diretório, por exemplo, exigindo uma senha para acessar o conteúdo da World Wide Web . Mais comumente, no entanto, os .htaccessarquivos definem ou substituem muitas outras configurações, como tipo de conteúdo, conjunto de caracteres , manipuladores de interface de gateway comum , etc.
Formato e idioma
.htaccessos arquivos são gravados na variante das Diretivas Apache da linguagem Perl Compatible Regular Expressions (PCRE). Aprender o próprio PCRE básico pode ajudar a dominar o trabalho com esses arquivos.
Por razões históricas, o formato dos .htaccessarquivos é um subconjunto limitado do arquivo de configuração global do servidor Apache HTTP,httpd.conf mesmo quando usado com servidores web, como Oracle iPlanet Web Server e Zeus Web Server, que possuem arquivos de configuração global nativos muito diferentes.
Uso comum
- Autorização , autenticação
- Um arquivo .htaccess é freqüentemente usado para especificar restrições de segurança para um diretório, daí o nome de arquivo " access". O .htaccessarquivo geralmente é acompanhado por um .htpasswdarquivo que armazena nomes de usuários válidos e suas senhas .
- Reescrita de URL
- Os servidores costumam usar .htaccesspara reescrever URLs longos e excessivamente abrangentes em URLs mais curtos e memoráveis.
- Bloqueio (controle de acesso)
- Use permitir / negar para bloquear usuários por endereço IP ou domínio. Também usado para bloquear bots ruins, rippers e referrers. Freqüentemente usado para restringir o acesso de rastreadores da web .
- SSI
- Habilite inclusões do lado do servidor .
- Listagem de diretório
- Controle como o servidor reagirá quando nenhuma página da web específica for especificada.
- Respostas de erro personalizadas
- Alterar a página que é mostrada quando ocorre um erro do lado do servidor, por exemplo HTTP 404 não encontrado ou, para indicar a um mecanismo de pesquisa que uma página foi movida, HTTP 301 movido permanentemente .
- Tipos MIME
- Instrua o servidor sobre como tratar diferentes tipos de arquivos variados.
- Controle de cache
- .htaccessos arquivos permitem que um servidor controle o armazenamento em cache por navegadores da web e proxies para acelerar sites, reduzir o uso de largura de banda , carga do servidor e atraso percebido . .htaccesstambém adiciona a idade do cache aos recursos da página da web para que, ao revisitar a página, os elementos sejam recarregados do cache do navegador até que a idade mencionada expire, em vez de solicitar o recurso novamente do servidor.
- HTTPS e HSTS
- A implementação de HTTPS e HSTS em servidores Apache é amplamente dependente da reescrita de URL correta e das informações de cabeçalho mencionadas no .htaccessarquivo. Qualquer sintaxe incorreta no arquivo durante a implantação de HTTPS ou HSTS leva a uma falha na implementação.
Vantagens
- Mudanças imediatas
- Como os .htaccessarquivos são lidos a cada solicitação, as alterações feitas nesses arquivos têm efeito imediato - ao contrário do arquivo de configuração principal, que exige que o servidor seja reiniciado para que as novas configurações tenham efeito.
- Usuários não privilegiados
- Para servidores com vários usuários, como em hospedagem compartilhada na web , geralmente é desejável permitir que usuários individuais alterem a configuração do site. A utilização de .htaccessarquivos permite essa individualização, e por usuários sem privilégios - pois os principais arquivos de configuração do servidor não precisam ser alterados.
Desvantagens
Controlar o Apache usando o arquivo de configuração do servidor principal httpd.confé frequentemente preferível por motivos de segurança e desempenho:
- Perda de desempenho
- Para cada solicitação HTTP , há acessos adicionais ao sistema de arquivos para diretórios pais ao usar .htaccess, para verificar se há .htaccessarquivos possivelmente existentes nesses diretórios pais que têm permissão para conter .htaccessarquivos. É possível migrar de forma programática as diretivas de .htaccesspara httpd.confse essa perda de desempenho for uma preocupação.
- Segurança
- Permitir que usuários individuais modifiquem a configuração de um servidor pode causar problemas de segurança se não for configurado corretamente.
- Sintaxe
- .htaccessgeralmente é muito sensível a erros de sintaxe. Devido a isso, qualquer erro ortográfico pode levar a erros do servidor e recursos da web no diretório com o erro .htaccessnão sendo exibido de todo.
Na cultura popular
Partes do videogame Mackerelmedia Fish de 2020 , que explora temas da cultura da Internet, foram implementadas diretamente nos .htaccessdiretórios abertos de um site .