Quem já não se deparou com o .htaccess e se perguntou para que serve este arquivo? Na dúvida, melhor não mexer.
Para que você não passe por isso novamente, vamos desvendar alguns dos segredos deste arquivo.
Antes de continuarmos, vamos definir o que é o arquivo .htaccess: O .htaccess é um arquivo que fica no servidor web e é utilizado para configurar o tipo de acesso a este servidor.
Com ele pode-se controlar diversos parâmetros como: restrição de acesso (com ou sem uso de senha), páginas de erro padrão, página padrão de acesso ao site, acesso com e sem o "www.", redirecionar diretivas, entre outras opções.
O uso correto do arquivo .htaccess pode ajudar muito também no SEO de seu site.
Nota: Ao colocar um arquivo .htaccess na pasta raiz de um site, ele atuará sobre todas as pastas deste. Mas um arquivo .htaccess em uma subpasta anula a ação do anterior passando a agir sobre este diretório e suas subpastas.
Configurações e usos mais comuns
1- Comentários
Para inserir um comentário no arquivo .htaccess, utilize um # no início da linha.
# Exemplo
2- Não exibir o conteúdo de um diretório
Quando você acessa uma pasta que não possui um arquivo de índice (index), o Apache por padrão mostra uma lista com todos os arquivos e pastas que existem dentro do diretório.
Se quiser impedir a exibição desta listagem você pode criar um arquivo de índice, por exemplo: index.html, mas existe uma solução mais elegante utilizando a diretiva Options. Basta inserir no .htaccess o código:
Options -Indexes
3- Página padrão
É possível definir um arquivo de index alternativo utilizando a diretiva DirectoryIndex. Ela permite definir quais arquivos atuarão como índice e que arquivo exibir no caso estes index não serem encontrados. Exemplo:
DirectoryIndex index.php index.html index.htm /proibido.php
Este código indica ao servidor que deve buscar os arquivos index.php, index.html ou index.htm - nesta ordem - e no caso de não encontrar nenhum deles, carregar o arquivo proibido.php
4- Páginas de erro
Para personalizar uma página de erro, como a página de erro 404 (que é exibida quando algum conteúdo não é encontrado no site, é só criar uma página personalizada com o nome 404.html e em seguida incluir este código no .htaccess:
ErrorDocument 404 https://seusite.com.br/404.html
Este mesmo pode ser feito para cada uma das mensagens de erro mais comuns como erro 403 e 500, por exemplo. Você só precisa especificar isto no .htaccess:
ErrorDocument 403 403.html
ErrorDocument 500 500.html
5- Modificar a extensão das páginas do site:
É possível alterar a extensão das páginas de seu site para que os visitantes não saibam qual é a linguagem de programação que está sendo utilizada.
Exemplo: Se você tem um site em PHP, você pode fazer com que as páginas de seu site sejam exibidas com a extensão .cool ao invés de .php (exemplo: index.cool ao invés de index.php). Para isto é só adicionar o código abaixo no .htaccess e em seguida alterar nos arquivos de seu site a extensão .php para .cool:
AddType application/x-httpd-php .cool
Desta forma o servidor irá tratar os arquivos .cool como se fossem arquivos .php.
6- Impedir que o usuário de um determinado IP acesse seu site
Se você quiser impedir que alguém acesse seu site (exemplo: uma pessoa má intencionada que está vasculhando seu site em busca de falhas), você pode bloqueá-lo adicionando o seguinte código ao arquivo .htaccess:
order allow,deny
deny from 123.456.789.10
allow from all
Neste exemplo estamos bloqueando o acesso do usuário com IP 123.456.789.10, então é substituir no código este IP pelo do usuário que você deseja bloquear.
7- Impedir que os usuários de um determinado provedoracessem seu site
Isto não é algo muito comum mas pode ser feito ao inserir um código como este no .htaccess:
order allow,deny
deny from .veloxzone.com.br
allow from all
Neste exemplo todos os usuários da Velox não conseguirão acessar seu site, enquanto os usuários de outros provedores continuarão acessando normalmente.
8- Redirecionamentos
Você pode criar um redirecionamento em seu site de várias formas, seja utilizando Javascript, PHP ou HTML (http-equiv), por exemplo. Isto também pode ser feito com o .htaccess e é bem simples:
Redirect /pastaantiga/pagina.html https://seusite.com.br/novapasta/pagina.html
Note que as três (3) partes que compõem este código são separados por espaço e precisam estar em uma mesma linha.
A primeira parte é o comando Redirect seguido da localização do arquivo/diretório que você quer redirecionar (2ª parte), e a terceira é o endereço completo do novo arquivo para o qual deve ser redirecionado.
Há ainda a possibilidade de se redirecionar todo um diretório:
Redirect /pastaantiga/ https://seusite.com.br/novapasta/
Os usos são os mais variados possíveis: Desde repor a informação de um arquivo que você mudou de localização e/ou de nome, até o redirecionamento de um usuário que requisitou a visualização de um diretório não permitido, por exemplo.
9- Impedir "hot-linking"
Para impedir que outras pessoas incluam arquivos como imagens, arquivos de áudio e vídeo, de seu site no site delas, com isto consumindo o tráfego mensal da sua hospedagem para exibir conteúdo no site delas, você pode incluir o seguinte código no arquivo .htaccess:
RewriteCond %{HTTP_REFERER} !^https://seusite.com.br/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^https://www.seusite.com.br/.*$ [NC]
RewriteRule .*\.(jpg|jpeg|gif|png|bmp)$ – [F,NC]
O código acima apresentará um link "quebrado" nas imagens .jpg, .jpeg, .gif, .png e .bmp de seu site que forem inseridas em outro site.
Você pode também exibir a sua logomarca ou algo do tipo quando ao invés do link "quebrado". Para isto utilize o código abaixo:
RewriteCond %{HTTP_REFERER} !^https://seusite.com.br/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^https://www.seusite.com.br/.*$ [NC]
RewriteRule .*\.(jpg|jpeg|gif|png|bmp)$ https://seusite.com.br/sualogo.png [R,L]