O que é o arquivo .htaccess e como você o usa no WordPress?

Publicados: 2020-10-27

Você pode ter ouvido falar do arquivo .htaccess antes, mas não tinha idéia do que é ou o que ele faz. Neste artigo vamos destacar o arquivo .htaccess e revelar seus mistérios de uma vez por todas. Ao final deste artigo você entenderá o que é o arquivo .htaccess, o que o arquivo .htaccess faz e como você pode usar o arquivo .htaccess para realizar determinadas tarefas. Vamos indo!

O que é o arquivo .htaccess?

Vamos começar examinando exatamente o que é um arquivo .htaccess. 'htaccess' significa 'acesso de hipertexto'. Este nome descreve para que o arquivo foi usado quando foi desenvolvido pela primeira vez. Em suma, era usado para controlar o acesso do usuário a determinados arquivos e diretórios. As coisas mudaram desde que o .htaccess apareceu pela primeira vez em cena e agora é usado de várias maneiras diferentes no WordPress, que veremos em detalhes.

O .htaccess é um arquivo principal de configuração do WordPress que é usado para substituir configurações específicas do servidor da Web Apache (Apache é um software comumente usado em servidores da Web) ou para implementar várias outras funções que afetam o funcionamento do seu site. Ele está incluído em todas as instalações do WordPress logo após a ativação dos permalinks e geralmente está localizado no diretório raiz da instalação. Você pode vê-lo ou editá-lo acessando os arquivos de instalação através de um cliente FTP como FileZilla ou WinSCP.

Nota: Certifique-se de que as preferências do seu cliente FTP sejam modificadas para que os arquivos ocultos sejam exibidos.

Por padrão, o conteúdo de um arquivo .htaccess de um site WordPress, uma vez que os permalinks são habilitados, se parece com isso:

 # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress

Caso você ainda não saiba, o “#” no início de uma linha é um comentário. As linhas de comentários # BEGIN WordPress e # END WordPress são usadas para que o conteúdo permaneça organizado quando mais regras forem aplicadas posteriormente por plugins ou por você mesmo. Qualquer adição futura ao arquivo .htaccess deve ser colocada fora dessas linhas.

O arquivo .htaccess é usado principalmente no WordPress para controlar os links permanentes em seu site. Ele também pode ser usado como uma ferramenta poderosa para várias outras tarefas, como controlar o acesso a determinados arquivos, melhorar a segurança e o desempenho, enviar cabeçalhos personalizados e muito mais.

Observação: é importante que todas as alterações feitas no arquivo .htaccess do seu site sejam feitas com cuidado. Mesmo um simples erro de digitação neste arquivo pode resultar na falha do seu site. Como tal, se você não tiver certeza sobre as alterações que está fazendo, o ideal é testá-las em um servidor de teste antes de aplicar em seu site ao vivo.

Coisas que você pode fazer com seu arquivo .htaccess

Então vamos ver como você pode ter mais controle do seu site com a ajuda do arquivo .htaccess.

Redirecionando entre 'www' e 'não-www'

Um uso comum do arquivo .htaccess é configurar um redirecionamento permanente de seu “domínio nu” (versão não www) para sua versão www ou vice-versa.

Antes de continuar, certifique-se de que ambos os domínios estejam configurados em seu DNS para resolver o endereço IP do servidor correto.

Além disso, na sua área de administração do WordPress, verifique se o domínio nu está definido como primário.

URL do site de configurações

Você pode redirecionar o domínio www para o nu adicionando o seguinte código no arquivo .htaccess, abaixo do conteúdo padrão.

 RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.mycompanyname\.com [NC] RewriteRule ^(.*)$ http://mycompanyname.com/$1 [L,R=301]

Para fazer exatamente o oposto (se o www estiver definido como primário) e redirecionar de um domínio 'não-www' para 'www', você precisaria inserir este código:

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

Se você não estiver familiarizado com as expressões regulares usadas no código e quiser entender mais sobre a sintaxe, sinta-se à vontade para ler mais sobre REGEX. HT Access Cheat Sheet é outra ferramenta muito útil

Redirecionamento 301 (redirecionamento permanente)

Um redirecionamento 301 informa aos mecanismos de pesquisa que um URL foi substituído permanentemente por outro e também redireciona um usuário para esse visitante para um novo URL (correto!). .

Aqui está o pedaço de código que quando colocado em um arquivo .htaccess faz o truque:

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

No exemplo acima, redirecionamos os usuários do site 'mycompanyname.com para 'example.com'. Claro, você vai querer substituir essas seções por suas próprias urls.

Isso também se aplicará a todos os caminhos sob o domínio. O que significa que, por exemplo, mycompanyname.com/new.html redirecionará para example.com/new.html

Redirecionamento 302 (redirecionamento temporário)

Quando um conteúdo é movido temporariamente para outro local, um redirecionamento 302 é usado. A sintaxe é a mesma de 301. Por exemplo:

 Redirect 302 /old.html http//www.mycompanyname.com/new.html

Do ponto de vista prático, o resultado é exatamente o mesmo, mas com uma diferença importante. Com um redirecionamento 301, os mecanismos de pesquisa são informados de que a página não está mais ativa e, ao fazê-lo, incentivará os mecanismos de pesquisa a remover esta página dos resultados da pesquisa. No caso de um redirecionamento 302, o URL original ainda será rastreado pelo Google e continuará a indexar em vez do novo URL. Como tal, é a solução ideal para um redirecionamento quando você deseja redirecionar apenas temporariamente para um conteúdo alternativo.

Forçar para HTTPS

Proteger seu site com um certificado SSL é muito importante nos dias de hoje. Os sites que não fazem isso agora exibirão um aviso na barra do navegador, o que pode prejudicar a confiança em seu site. Além disso, o Google penaliza sites que não fornecem conteúdo via HTTPS e, como tal, suas classificações de pesquisa podem sofrer.

Mesmo quando você instala um certificado SSL em seu site, ainda pode descobrir que os usuários podem visitar a versão não HTTPS do seu site. Se eles fizerem isso, eles ainda receberão o aviso em seu navegador, apesar do fato de você ter um certificado SSL instalado. Para impedir que isso aconteça, você precisa forçar todo o tráfego da versão HTTP insegura para a versão HTTPS segura. Isso é super fácil de fazer usando seu arquivo .htaccess adicionando o seguinte código:

 RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Bloquear endereços IP

Se você está recebendo tráfego de spam ou seu site está sofrendo tentativas de abuso/hacking de determinados endereços IP, você pode agir usando seu arquivo .htaccess bloqueando o tráfego desse endereço IP usando o seguinte código em seu arquivo .htaccess.

 Deny from 94.66.58.135

Se você quiser saber como bloquear um endereço IP de outras maneiras, leia este guia.

Impedir Hotlinking de Imagem

Hotlinking de imagem é onde alguém incorpora uma imagem em seu site em seu próprio site. Isso pode ser problemático (e não apenas do ponto de vista de direitos autorais), pois significa que seu servidor está tendo que trabalhar horas extras para exibir imagens no site de outra pessoa. Você pode parar isso usando o arquivo .htaccess para impedir que alguém incorpore suas imagens em seu site com o seguinte código:

 RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mycompanyname.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yahoo.com [NC] RewriteRule \.(jpg|jpeg|png|gif)$ - [F]

Não se esqueça de substituir 'mycompanyname.com' pelo URL do seu site!

Este código bloqueia TODOS os sites de imagens de hotlinking em seu site. Como você não deseja impedir que os mecanismos de pesquisa façam hotlinking de imagens, você precisará incluí-las manualmente na lista de permissões. A seção do código que alcança isso é esta parte aqui:

 RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mycompanyname.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yahoo.com [NC]

É claro que você pode incluir quaisquer outros sites que deseja incluir na lista de permissões. Finalmente, a última linha no código ( RewriteRule .(jpg|jpeg|png|gif)$ - [F] ) determina quais tipos de mídia são bloqueados.

Proteja arquivos de plugins e temas

Arquivos PHP de plugins e temas podem às vezes ser alvo de hackers que tentam injetar códigos maliciosos neles. Você pode usar seu arquivo .htaccess para ajudar a impedir o acesso a esses arquivos usando o seguinte código:

 RewriteCond %{REQUEST_URI} !^/wp-content/plugins/file/to/exclude\.php RewriteCond %{REQUEST_URI} !^/wp-content/plugins/directory/to/exclude/ RewriteRule wp-content/plugins/(.*\.php)$ - [R=404,L] RewriteCond %{REQUEST_URI} !^/wp-content/themes/file/to/exclude\.php RewriteCond %{REQUEST_URI} !^/wp-content/themes/directory/to/exclude/ RewriteRule wp-content/themes/(.*\.php)$ - [R=404,L]

Proteja os arquivos principais do WordPress

É altamente recomendável que alguns arquivos principais do WordPress sejam inacessíveis para usuários não administradores. Isso é algo que a maioria dos provedores de hospedagem cuidam para você, mas nem sempre é o caso. Se você quiser impedir o acesso a arquivos confidenciais do WordPress, use o seguinte código em seu arquivo .htaccess:

 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^wp-admin/includes/ - [F,L] RewriteRule !^wp-includes/ - [S=3] RewriteRule ^wp-includes/[^/]+\.php$ - [F,L] RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L] RewriteRule ^wp-includes/theme-compat/ - [F,L] </IfModule>

Impedir que bots ruins rastreiem seu site

Os bots são basicamente scripts da Web automatizados que podem escanear milhões de sites por dia. O Google usa bots para verificar sites e obtém os dados dessas verificações para atualizar seus enormes bancos de dados de pesquisa. Espero que um bot do Google seja totalmente inofensivo! Existem outros bots que você pode não querer escanear seu site. Alguns desses bots 'ruins' podem não fazer nada além de consumir largura de banda desnecessária do servidor, enquanto outros podem estar procurando ativamente por pontos fracos exploráveis ​​em seu site. Seu arquivo .htaccess pode ser usado para bloquear esses bots 'ruins'.

A primeira coisa a descobrir é quais bots você deseja bloquear? Você já deve saber, mas se não, você pode conferir uma lista atualizada de bots na lista negra que são considerados suspeitos. Quando você tiver sua lista, você pode adicioná-los ao seu arquivo .htaccess assim:

 #Block bad bods requests SetEnvIfNoCase user-Agent ^FrontPage [NC,OR] SetEnvIfNoCase user-Agent ^Java.* [NC,OR] SetEnvIfNoCase user-Agent ^Microsoft.URL [NC,OR] SetEnvIfNoCase user-Agent ^MSFrontPage [NC,OR] SetEnvIfNoCase user-Agent ^Offline.Explorer [NC,OR] SetEnvIfNoCase user-Agent ^[Ww]eb[Bb]andit [NC,OR] SetEnvIfNoCase user-Agent ^Zeus [NC]

Depois de salvar suas alterações, qualquer bot na lista que agora visitar seu site receberá uma página 403 Forbidden.

Proteja wp-config.php

Geralmente, é recomendável restringir o acesso ao arquivo wp-config.php, pois ele contém as credenciais de acesso ao banco de dados.

Para fazer isso via .htaccess basta copiar e colar as seguintes linhas em seu arquivo .htaccess:

 <files wp-config.php>order allow,denydeny from all</files>

Desabilite a execução do PHP

Uma maneira muito eficiente de se proteger contra tentativas de hack é impedir a execução do PHP em diretórios específicos onde não é necessário. Por exemplo, os diretórios /wp-includes/ e /wp-content/uploads/ são locais populares usados ​​por hackers para colocar código que permite acesso não autorizado ao servidor (conhecido como arquivos backdoor). Desabilitar a execução do PHP nesses diretórios não apagará esses arquivos, mas os impedirá de executar seu código. Para fazer isso, adicione o seguinte código ao arquivo .htaccess.

 <Files *.php>deny from all</Files>

Você também descobrirá que muitos provedores de hospedagem, incluindo o Pressidium, já desabilitaram por padrão a execução do PHP nesses diretórios para aumentar seu nível de segurança para seus clientes.

Desabilitar o acesso XML-RPC

É um problema comum frequentemente visto por equipes de suporte em empresas de hospedagem onde uma instalação do WordPress está recebendo milhares de solicitações “POST /xmlrpc.php HTTP/1.1” que geralmente estão relacionadas a um ataque de um ou vários endereços IP. Uma solução para isso é desabilitar o XML-RPC.

Para desabilitar o XML-RPC para seu site, adicione estas linhas de código ao seu arquivo .htaccess:

 # Block WordPress xmlrpc.php requests <Files xmlrpc.php> order deny,allow deny from all </Files> # END protect xmlrpc.php

Vale a pena notar que xmlrpc.php é necessário se você estiver atualizando seu conteúdo usando aplicativos móveis ou conexões remotas. Portanto, se você estiver pensando em desativá-lo permanentemente, certifique-se de que ele não seja necessário para o seu trabalho.

Forçar o download de arquivos

Pode ser extremamente irritante para um usuário de site que, quando você deseja baixar um arquivo de um site (por exemplo, um PDF), o arquivo é aberto na janela do navegador. Se você tiver arquivos em seu site fornecidos como itens para download para seus usuários, poderá editar seu arquivo .htaccess e adicionar uma linha de código que pode forçar o download de tipos de arquivos específicos e não a exibição diretamente no navegador. Você verá este código abaixo junto com alguns exemplos de tipos de arquivo que você gostaria que os usuários pudessem baixar diretamente.

 AddType application/octet-stream .avi .mpg .mov .pdf .xls .mp4

Enviar cabeçalhos HTTP personalizados

Usuários avançados podem querer enviar cabeçalhos HTTP para clientes aproveitando a diretiva Header do Apache. Para fazer isso, adicione o seguinte código ao arquivo .htaccess.

 Header add my-custom-header "my custom header value"

O exemplo acima diria ao Apache para adicionar um cabeçalho chamado “my-custom-header” para cada solicitação ao servidor. Se implementarmos esta atualização e, em seguida, verificarmos nossa guia de rede nas ferramentas do nosso navegador, podemos confirmar sua resposta conforme mostrado abaixo.

meu cabeçalho personalizado

Essa técnica é muito comum para adicionar cache e cabeçalhos de segurança ou adicionar um conjunto de caracteres de idioma. Dê uma olhada neste artigo para alguns usos populares. Você também pode encontrar uma lista detalhada de cabeçalhos para você experimentar nesta lista.

Conclusão

Espero que este artigo tenha lhe dado algumas dicas sobre as coisas que podem ser alcançadas com o arquivo .htaccess. Claro, muitas dessas coisas podem ser realizadas usando um plug-in, mas é sempre útil entender o que exatamente está acontecendo 'nos bastidores', especialmente se um plug-in não funcionar da maneira que você espera. Dominar como editar o arquivo .htaccess em vez de depender de um plugin também ajuda a melhorar seus níveis de experiência em WordPress… e isso é sempre uma coisa boa!