10 trechos e hacks de código htaccess úteis

Publicados: 2020-09-10

.htaccess é um arquivo que todo administrador da web deve conhecer e entender. Em seu nível básico, ele controla o acesso aos diretórios do seu site. Mas há muito mais do que você pode fazer, como os trechos deste post mostrarão.

Se você gostaria de aprender o básico do .htaccess , você deve verificar nosso artigo Introdução ao .htaccess, que explica muito bem tudo o que você precisa para começar a trabalhar.

Você também pode gostar desses úteis trechos de consulta SQL do WordPress ou desses trechos que tornam o WordPress amigável para seus clientes.

1. Controlando o acesso a arquivos e diretórios

A proteção por senha é uma coisa, mas às vezes você pode precisar bloquear completamente os usuários de terem a opção de acessar um determinado arquivo ou diretório. Isso geralmente acontece com pastas do sistema, como a pasta includes para a qual os aplicativos precisarão de acesso, mas nenhum usuário precisará do privilégio.

Para fazer isso, cole este código em um arquivo .htaccess e solte-o no diretório:

No entanto, isso bloqueará o acesso a todos, incluindo você. Para se conceder acesso, você precisa especificar seu endereço IP. Aqui está o código:

xxx.xxx.xxx.xxx é o seu IP. Se você substituir os últimos três dígitos por 0/12 , por exemplo, isso especificará um intervalo de IPs dentro da mesma rede, evitando assim o problema de listar todos os IPs permitidos separadamente.

Se você quiser bloquear o acesso a um arquivo específico, incluindo o próprio .htaccess , use o seguinte trecho:

Da mesma forma, se você deseja permitir determinados IPs, liste-os com allow from .

Se você deseja bloquear o acesso a tipos de arquivos específicos, use isto:

2. Desativando a navegação no diretório

Para impedir a navegação no diretório, adicione isto:

No entanto, se por algum motivo você quiser habilitar a navegação no diretório, altere para o seguinte:

3. Acelerando os tempos de carregamento ao compactar arquivos

Você pode compactar qualquer tipo de arquivo, não apenas imagens. Por exemplo, para compactar arquivos HTML , use isto:

Para compactar arquivos TEXT , use isto:

Você também pode compactar JavaScript ou adicionar compactação a vários tipos de arquivo com um comando:

Como alternativa, se você deseja compactar todos os seus arquivos JavaScript, HTML e CSS com GZIP, você pode usar isto:

4. Proteja seu site contra hotlinking

Se você não quiser que suas imagens sejam vinculadas, adicione isto ao seu arquivo .htaccess :

Basta substituir seudominio.com pelo seu e pronto.

5. Bloqueando visitantes encaminhados de um domínio específico

Se você tiver usuários de um domínio específico que não seja bem-vindo, poderá bani-los do seu site. Por exemplo, se o seu site for listado em um lugar do qual você não deseja tráfego (ou seja, sites adultos, sites de blackhat etc.), você pode veiculá-los com uma página 403 Forbidden. Você precisa ter o mod_rewrite ativado, mas deve ficar bem, pois geralmente está ativado. Adicione este trecho:

Você precisa substituir bannedurl1.com e bannedurl2.com etc. pelos nomes de domínio que deseja colocar na lista negra. Você pode querer usar o sinalizador [NC] porque especifica que o nome de domínio que você digitou não diferencia maiúsculas de minúsculas. O sinalizador [F] especifica a ação a ser tomada – neste caso, para mostrar o erro 403 Forbidden. Se você quiser banir vários sites, use o sinalizador [NC,OR] para todos os domínios, exceto o último, e se quiser banir um único domínio, use apenas o sinalizador [NC] .

6. Bloqueio de solicitações de agentes de usuário específicos

Se seus arquivos de log mostrarem agentes de usuário específicos (bots ou spiders), você poderá adicionar algumas linhas ao .htaccess e negar-lhes o acesso ao seu site:

Substitua badbot1 , badbot1 , etc. pelos nomes dos bots dos seus arquivos de log. Isso deve manter esses programas longe do seu site.

7. Cache de arquivos

Outra maneira de acelerar os tempos de carregamento do seu site é através do cache de arquivos. Aqui está o que você precisa adicionar para armazenar arquivos em cache:

Você pode adicionar mais tipos de arquivos (ou remover alguns deles) à sequência de arquivos listados neste exemplo – faça o que for mais conveniente para você. Você também pode usar max-age para especificar a quantidade de tempo em segundos que seus arquivos ficarão no cache.

8. Desativando o cache para tipos de arquivos específicos

Se você não deseja armazenar em cache determinados tipos de arquivos, é mais fácil não incluí-los na sequência de cache. No entanto, às vezes os arquivos podem ser armazenados em cache mesmo que você não os liste explicitamente e, nesse caso, convém desabilitar o cache apenas para eles. Na maioria das vezes, você desejará desabilitar o cache para arquivos dinâmicos, como scripts. Aqui está como fazê-lo:

Basta canalizar os arquivos para os quais você deseja desabilitar o cache e é isso.

9. Ignorando o diálogo de download

Por padrão, quando você tenta baixar um arquivo de um servidor da Web, aparece uma caixa de diálogo que pergunta se você deseja salvar o arquivo ou abri-lo. Esse diálogo é especialmente irritante com grandes arquivos de mídia ou PDFs. Se os arquivos que você carregou para o seu servidor forem para download, você pode evitar problemas aos usuários e prosseguir direto para o download. Aqui está o que você precisa definir em .htaccess :

10. Renomeando um arquivo .htaccess

Se por algum motivo, principalmente relacionado à segurança, você quiser renomear seu arquivo .htaccess , é muito fácil fazê-lo. Em teoria, renomear um arquivo .htaccess não deve causar problemas com os aplicativos em execução em seu servidor, mas se por acaso você notar esses problemas após renomear o arquivo, apenas renomeie-o de volta ao seu nome original.

Você também precisa atualizar quaisquer entradas no próprio arquivo ou em qualquer lugar que .htaccess seja mencionado; caso contrário, você estará recebendo muitos erros.

11. Alterando uma página de índice padrão

Se você quiser que sua página de índice seja algo diferente do padrão index.html , index.php , index.htm , etc. isso é muito fácil de fazer. Aqui está o que você precisa adicionar ao .htaccess :

Substitua mypage.html pelo URL real da página que você deseja usar como índice e pronto.

12. Redirecionando para uma conexão https segura

Se você estiver usando HTTPS e quiser redirecionar os usuários para as páginas seguras do seu site, use isto:

13. Restringindo Limites de Upload de Arquivos em PHP, Tamanho Máximo de Dados Postados, Tempo Máximo de Execução de Script, etc.

.htaccess permite definir alguns valores que afetam diretamente seus aplicativos PHP. Por exemplo, se você deseja impor limites de upload em PHP para não ficar sem espaço de hospedagem por causa de arquivos grandes, use isto:

Claro, você pode definir o valor para qualquer coisa que considere apropriada – 15M (MB) neste exemplo não é fixo. Você também pode restringir o tamanho máximo de postagem para upload em PHP. Para fazer isso, adicione isso:

Da mesma forma, você pode alterar 10M para qualquer valor que lhe agrade. Se você não quiser que os scripts sejam executados para sempre, você pode limitar seu tempo de execução com a ajuda do seguinte:

240 é o número de segundos antes que o script seja encerrado e, como você imagina, pode ser qualquer valor. Finalmente, se você quiser limitar o tempo que um script pode analisar os dados de entrada, use isto:

E defina qualquer valor em segundos que mais lhe convier.

14. Tipos de arquivos disfarçados

Às vezes, você não gostaria que os usuários soubessem os tipos de arquivo dos arquivos em seu site. Uma maneira de ocultar essas informações é disfarçá-las. Por exemplo, você pode fazer com que todos os seus arquivos pareçam arquivos HTML ou PHP:

Há muito mais que pode ser feito com .htaccess . Por exemplo, você pode definir a tradução automática das páginas do seu site, ou definir o fuso horário do servidor, ou remover o www dos URLs, ou usar listagens de diretórios sofisticadas, etc. Em qualquer caso, antes de iniciar experimentos com .htaccess , sempre faça backup do original .htaccess , então se as coisas não saírem conforme o planejado, você tem uma cópia de trabalho para a qual voltar.