Home / Artigos / Guias de hospedagem na web / Os princípios básicos do .htaccess: Como o usar e exemplos

Os princípios básicos do .htaccess: Como o usar e exemplos

Os princípios básicos do .htaccess: Como o usar e exemplos

O que é um ficheiro .htaccess?

O ficheiro .htaccess é um Servidor HTTP Apache (normalmente designado apenas por Apache). O ficheiro é extremamente poderoso e pode ser utilizado para ajudar a controlar várias facetas das páginas web que são fornecidas pelo Apache. Isto inclui coisas como a gestão de redirecionamentos, proteção de links diretos e muito mais.

Onde está o ficheiro .htaccess?

Deve existir um ficheiro .htaccess na pasta de raiz da sua hospedagem na web - a pasta (normalmente /public_html ou /www) que contém o conteúdo do seu site.

Pode ter mais do que um ficheiro .htaccess na sua conta de hospedagem, mas cada diretório ou pasta só pode ter um. Por exemplo, pode ter ficheiros .htaccess separados na sua pasta de raiz e outro numa subpasta. Isto permite-lhe definir um comportamento diferente do servidor com base na estrutura do diretório.

O ficheiro .htaccess é poderoso, mas pode ser acedido e modificado se não estiver corretamente protegido. Certifique-se de que toma medidas para impedir o acesso a este ficheiro.

O seu ficheiro .htaccess pode estar oculto

Em primeiro lugar .htaccess é um ficheiro do Apache, o que significa que só o pode encontrar num servidor Apache.* Pare de pesquisar se o seu host estiver executando em um software de servidor da Web diferente (ou seja, Microsoft IIS ou NGINX).

Os nomes de ficheiros que começam com um ponto são normalmente ficheiros ocultos. Isto significa que tipicamente não são visíveis por defeito.

Para ver este ficheiro, basta ativar a opção "Mostrar ficheiros ocultos" no seu cliente FTP ou Gestor de Ficheiros de Hospedagem (veja a imagem abaixo).

Encontre .htaccess arquivo - Como mostrar arquivos ocultos no gerenciador de arquivos cPanel
Exemplo - Mostra os seus ficheiros ocultos ao ativar esta opção no Gestor de Ficheiros do cPanel.

Pode achar que o ficheiro .htaccess é um inconveniente, uma vez que requer codificação mas pense no utilizador que precisa de estabelecer o mesmo comportamento de servidor em vários sites. Tudo o que essa pessoa terá de fazer é duplicar o ficheiro .htaccess.

Os ficheiros .htaccess são ficheiros de configuração do servidor e, uma vez que se referem diretamente ao comportamento, não é necessário que algo seja executado de cada vez que é feito um pedido. É, portanto, muito menos intensivo em termos de recursos do que utilizar um plug-in, por exemplo.

* Nota: O Apache tem uma taxa de ocupação do mercado de cerca de 22.8% para os principais milhões de sites, com base no relatório W3Techs de maio de 2022. Marcas de hospedagem mais populares mencionadas no WHSR - A2 Hosting, BlueHost, GreenGeeks, Hostinger, InMotion Hosting são alimentadas pelo Apache. 

Utilização do ficheiro .htaccess - Exemplos reais e amostras de código

Embora haja um ponto à frente do nome do ficheiro, htaccess é o nome do ficheiro e o ponto não faz dele uma extensão. Especificamente, é este nome exacto de ficheiro que o Apache procura quando é executado. Qualquer coisa dentro do ficheiro .htaccess define parâmetros para o Apache ativar ou desativar funções ou até mesmo executar tarefas específicas quando determinadas condições são atendidas.

Por exemplo, com base nas instruções contidas no ficheiro, o Apache pode carregar automaticamente páginas de erro personalizadas se os visitantes do seu site estiverem à procura de um recurso que não existe. Cada tipo de erro tem o seu próprio código e cada um deles pode ser redirecionado individualmente.

Há uma lista enorme de coisas que podem ser feitas utilizando o ficheiro .htaccess e hoje vou partilhar algumas delas consigo.

1. Gerir páginas de erro personalizadas

utilização .htaccess ErrorDocument 404 para redirecionar seus usuários para outra página.
Exemplos de algumas personalizações criativas de páginas de Erro 404 .

Quando deixada nas configurações padrão, a maioria dos softwares de servidor web envia uma página de erro de aparência muito sombria para os seus visitantes. Se quiser mostrar uma página de erro mais amigável (ou, no mínimo, apresentável), terá de usar o tratamento personalizado de documentos de erro no seu ficheiro .htaccess.

Digamos que concebeu uma página de erro 404 personalizada chamada "404.html" e a guardou numa subpasta do seu diretório web chamada "error_pages". Utilizando a seguinte linha de código em .htaccess, pode ativar essa página sempre que um erro 404 for encontrado por um visitante;

ErrorDocument 404 /error_pages/404.html

Utilizando esta técnica, pode salvar cópias personalizadas de cada tipo de erro individual que deseja contabilizar e configurá-las para serem chamadas incluindo o código necessário no seu .htaccess arquivo. Os mais frequentemente encontrados códigos de erro incluem;

  • 400 - Pedido incorreto
  • 403 - Proibido
  • 404 - Ficheiro não encontrado
  • 500 - Erro interno do servidor
  • 503 - Serviço indisponível

2. Lidar com redirecionamentos

Pode haver ocasiões em que pretenda definir um redirecionamento geral para poder direcionar os seus visitantes para páginas específicas sem que eles saibam. Por exemplo, se originalmente utilizava HTTP mas, entretanto, instalou SSL e mudou para HTTPS, quer que todos os seus utilizadores utilizem a versão HTTPS do seu site.

Nesta situação, o que precisa de fazer é utilizar a regra de reescrita (Rewrite rule);

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.yourdomain.com/$1 [R,L]

O código para isto pode ser modificado consoante as suas necessidades. Por exemplo, se pretender redireccionar os utilizadores do seu domínio antigo para um novo domínio, deve utilizar;

RewriteEngine On
RewriteCond %{HTTP_HOST} ^olddomain.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.olddomain.com [NC]
RewriteRule ^(.*)$ http://newdomain.com/$1 [L,R=301,NC]

Existem muitas variações na forma como pode configurar os redirecionamentos. Detalhes da sintaxe para reescrita podem ser encontrados nas páginas de documentação do Apache .

Uma das coisas mais úteis que os redirecionamentos podem fazer por si é ajudá-lo a orientar os motores de busca para as páginas que moveu. Normalmente, os motores de busca indexam as hiperligações e, se não conseguirem encontrar as páginas certas, assumem que o conteúdo desapareceu.

Ao utilizar um redirecionamento, pode mover facilmente o conteúdo e permitir que os robôs da web saibam onde encontrar o conteúdo que indexou anteriormente. Para o fazer, utilize;

Redirect 301 /archive/ /past-entries/

A instrução 301 não só permite que os utilizadores acedam ao conteúdo antigo sem problemas, como também serve de instrução aos robôs da web de que o conteúdo foi movido permanentemente. Isto ajuda-os, permitindo-lhes reindexar os links rapidamente.

3. Aumente a segurança do site

Acho que muitos proprietários de novos sites tendem a confiar demasiado em ferramentas externas para aumentar a segurança do seu site. Embora seja verdade que existem muitas aplicações excelentes, pode começar com o básico no seu ficheiro .htaccess.

Proteção de Diretórios com Palavra-Passe

Para isso, precisa de dois ficheiros, .htaccess e .htpasswd. O ficheiro .htpasswd inclui alguma encriptação, por isso utilize uma ferramenta como o Htpasswd Generator para criar o ficheiro. O ficheiro .htaccess deve incluir este código;

AuthType Basic
AuthName "Password Protected Area"
AuthUserFile /path/to/.htpasswd
Require valid-user

Desativar a navegação de Diretórios

Este é um dos mais fáceis de fazer e só precisa de duas linhas de código para ser incluído no seu ficheiro .htaccess;

# Disable directory browsing
Options -Indexes

Bloquear IPs específicos

Para bloquear a visita de IPs individuais ao seu site, adicione o seguinte código ao seu ficheiro .htaccess;

Deny from XXX.XXX.XXX.XXX

Onde você substitui XXX pelos valores IP numéricos. Existem variações deste código que podem ser usadas para bloquear uma gama de Endereços IP ou vários endereços IP também.

4. Protecção de Links Diretos

A vinculação direta (hotlinking) ocorre quando outros sites se ligam a imagens que está a hospedar. Isto é indesejável porque eles estão a utilizar tanto o seu espaço como a largura de banda. Para evitar a vinculação direta de imagens, adicione o seguinte ao seu ficheiro .htaccess;

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)example.com/.*$ [NC]
RewriteRule \.(gif|jpg|jpeg|bmp)$ - [F]

A última linha desse código é onde se especifica quais os ficheiros que se pretende bloquear aos sites de vinculação direta. Basicamente, está a instruir o Apache a bloquear todos os links para os ficheiros que não pertencem ao nome de domínio http://www.example.com/.

Muitas pessoas que fazem vínculo direto (hotlink) não voltam a verificar as suas mensagens, por isso, se quiser mesmo envergonhá-las, pode apresentar uma mensagem personalizada aos sites que tentam fazer vínculo direto;

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)example.com/.*$ [NC]
RewriteRule \.(gif|jpg)$ http://www.example.com/stopstealing.gif [R,L]

5. Proteger o ficheiro .htaccess

Por esta altura já se apercebeu da utilidade do ficheiro .htaccess. Uma vez que chegou a essa conclusão, está na altura de pensar em proteger este valioso ficheiro! Se estiver a usar um ficheiro .htpasswd, então provavelmente vai querer protegê-lo também e a forma de fazer as duas coisas é;

# protect .htaccess and .htpasswd

<Files ~ "^.*\.([Hh][Tt])">
Order allow,deny
Deny from all
Satisfy all
</Files>

Tenha em atenção que, na maioria dos servidores seguros, estes ficheiros já estão protegidos. Antes de adicionar este código, verifique se consegue aceder aos ficheiros numa janela do browser. Basta digitar o URL e adicionar um /.htaccess atrás para ver se consegue ver o ficheiro. Se não conseguir, provavelmente ser-lhe-á apresentada uma mensagem de erro.

6. Definir o fuso horário do servidor

Se notar que, por uma razão ou outra, as horas no seu servidor parecem estar um pouco desfasadas, então pode precisar de forçar um fuso horário usando o ficheiro .htaccess. Isto é algo que novamente é fácil de fazer e precisa de apenas de uma única linha de código;

SetEnv TZ America/yourtimezone

Existe uma enorme lista de fusos horários disponíveis e pode encontrar a correspondência mais próxima da sua consultando a lista de fusos horários suportados.

Aproveite o poder do .htaccess

As amostras que mostrei aqui são apenas a ponta de um iceberg muito grande. Dá hospedagem na web usuários muito mais poder sobre seus sites do que normalmente seria permitido através de um painel de controle e dar-lhes uma gama mais ampla de ferramentas para trabalhar.

Aprender a utilizar código está apenas a um passo de distância com o poder do Google, e o melhor de tudo é que só precisa de escolher e aprender as coisas que precisa de utilizar.

Perguntas frequentes sobre o ficheiro .htaccess

Preciso de um ficheiro .htaccess?

Não, a utilização do .htaccess não é obrigatória. No entanto, é uma das únicas formas de os utilizadores de hospedagem partilhada obterem algum controlo sobre o seu servidor de hospedagem na web . Se não planeia fazer alterações de configuração do servidor na hospedagem partilhada, o ficheiro é desnecessário.

O que contém o ficheiro .htaccess?

Uma vez que o ficheiro .htaccess se destina às configurações do servidor, contém código com instruções relacionadas. Por exemplo, a linha "SetEnv TZ America/yourtimezone" permitir-lhe-á definir o fuso horário do servidor de acordo com a sua preferência.

Como posso criar um ficheiro .htaccess?

A melhor forma de criar um ficheiro .htaccess é utilizando um editor de texto simples. Por exemplo, pode utilizar o Microsoft NotePad na sua máquina local e depois carregá-lo para o seu servidor de hospedagem na web. Em alternativa, a maioria dos gestores de ficheiros de hospedagem na web também lhe permite criar ficheiros de texto simples.

O WordPress tem um ficheiro .htaccess?

O .htaccess arquivo não está diretamente relacionado a WordPress uma vez que se destina a configurações de servidor. Seu WordPress site pode ou não ter um. Se não estiver presente, você ainda pode criar e usar um .htaccess arquivo manualmente.

Leia mais

Foto do autor

Artigo escrito por Jerry Low

Continue lendo