O guia definitivo para o arquivo .htaccess do WordPress

Publicados: 2022-08-10

Eu realmente não sou fácil de entender: meu código padrão parece chinês.

Destaco-me pela minha aparência singular, pois o meu nome não tem extensão.

Eu também tenho poderes mágicos. Se você me configurar corretamente, eu sou capaz do seguinte:

  • Melhorando a segurança do seu site.
  • Aumentando a velocidade de carregamento de suas páginas.
  • Configurando redirecionamentos.
  • Limitando o spam.
  • E até fazendo algumas piadas: esse é o meu lado atrevido.
Sério?!
Piadas? Sério?

Você ainda não sabe quem eu sou? Eu sou o arquivo .htaccess do seu site WordPress. Vamos me conhecer melhor neste guia sobre como eu trabalho.

Ao longo dessas linhas, você descobrirá mais de trinta orientações para me configurar. Eles são materializados na forma de pedaços de código prontos para uso, que você só terá que copiar e colar em casa.

Continue lendo, você não ficará desapontado!

Visão geral

  1. O que é um arquivo .htaccess?
    1. Como funcionam os arquivos .htaccess?
      1. Como criar um arquivo .htaccess
        1. Medidas de precaução antes de personalizar um arquivo .htaccess
          1. Como modificar seu arquivo .htaccess corretamente.
            1. Como personalizar o arquivo .htaccess na raiz de um site?
              1. Como personalizar o arquivo .htaccess no wp-admin
                1. Como personalizar o arquivo .htaccess no wp-includes?
                  1. Como personalizar o arquivo .htaccess no wp-content?
                    1. Como personalizar o arquivo .htaccess em wp-content/uploads?
                      1. Recapitulação final do arquivo .htacess no WordPress

                        Originalmente escrito em outubro de 2015, este artigo foi atualizado pela última vez em julho de 2022.

                        Seus melhores projetos WordPress precisam do melhor host!

                        O WPMarmite recomenda Bluehost: ótimo desempenho, ótimo suporte. Tudo o que você precisa para um ótimo começo.

                        Experimente o Bluehost
                        CTA Bluehost WPMarmite

                        O que é um arquivo .htaccess?

                        Um arquivo .htaccess é um arquivo de configuração do Apache, o software que a maioria dos servidores da Web usa para executar. O conteúdo deste arquivo dará diretivas ao Apache para que o servidor se comporte de uma determinada maneira.

                        Cuidado, alguns hosts da Web são executados apenas no servidor NGINX. É o caso do Flywheel, por exemplo. Eles não têm um arquivo .htaccess .

                        Quase todos os sites que usam o WordPress têm um arquivo .htaccess . Na verdade, o WordPress o cria automaticamente durante a instalação, para incluir as configurações de permalinks do site.

                        Quando você vai em Configurações > Permalinks para escolher um formato de URL (normalmente “Nome do post”), o arquivo .htaccess é modificado.

                        Como funcionam os arquivos .htaccess?

                        Você deve saber que um site pode ter vários arquivos .htaccess .

                        Primeiro, há o arquivo .htaccess principal, localizado na raiz do site.

                        A raiz de um site é onde os arquivos do WordPress ( pastas wp-admin , wp-includes e wp-content mais alguns outros arquivos) estão localizados em seu servidor. Você pode acessá-los conectando-se ao seu cliente FTP, por exemplo. O nome dessa pasta raiz pode variar dependendo do seu provedor de hospedagem. Por exemplo, chama-se public_html com Bluehost (link afiliado) e www com OVH.

                        O conteúdo do arquivo .htaccess principal influenciará todo o site.

                        Outros arquivos .htaccess podem ser criados em subdiretórios. No caso do WordPress, um pode ser colocado no diretório wp-admin ou wp-content/uploads , por exemplo.

                        Os arquivos .htaccess secundários influenciarão os diretórios em que estão localizados, bem como seus subdiretórios.

                        Se imaginarmos que um arquivo .htaccess está presente em wp-content/uploads , o diretório de uploads e todos os seus subdiretórios serão impactados pelo que está definido no arquivo .htaccess .

                        Como criar um arquivo .htaccess

                        Logicamente, seu site deve ter pelo menos um arquivo .htaccess , aquele localizado na raiz do seu site. Você pode editá-lo usando seu editor de código favorito (Sublime Text, Brackets, Notepad++, Coda, etc.).

                        Existem outras soluções, como o plugin Htaccess File Editor, para editá-lo diretamente do seu painel do WordPress.

                        Mas, se houver algum problema, você terá que passar pelo seu cliente FTP e editor de código, então você pode fazê-lo diretamente à mão.

                        Se você precisar adicionar um arquivo .htaccess a um subdiretório, siga estas instruções.

                        Crie um arquivo .htaccess do seu computador

                        1. Crie um novo arquivo de texto e nomeie-o como htaccess.txt .
                        2. Edite-o como desejar.
                        3. Envie-o para a raiz do seu servidor.
                        4. Renomeie-o como .htaccess .
                        Um arquivo .htaccess em um software FTP.

                        Crie um arquivo .htaccess do seu servidor

                        1. Clique com o botão direito do mouse no diretório onde ele deveria estar.
                        2. Adicione um novo arquivo e nomeie-o como .htaccess.
                        3. Edite-o com seu editor de código (Notepad++, Coda, Sublime Text ou outro).

                        Parabéns, agora você sabe para que serve um arquivo .htaccess e como criá-lo. Antes de descobrir quais diretrizes você pode adicionar a ele, lembre-se de ser cauteloso!

                        Cuidado com os olhos, pode arder!

                        Medidas de precaução antes de personalizar um arquivo .htaccess

                        Personalizar o código de um arquivo .htaccess é bastante simples (especialmente com os trechos de código oferecidos no restante deste artigo), mas você ainda não deve entrar nisso com armas em punho.

                        Antes de fazer qualquer alteração, recomendo que você primeiro faça um backup do seu site WordPress. Para isso, você pode usar um plugin dedicado como o UpdraftPlus.

                        Em seguida, salve o conteúdo inicial do seu arquivo .htaccess . Para fazer isso, você pode:

                        • Duplique o arquivo .htaccess em seu servidor em um arquivo .htaccess-initial .
                        • Copie o conteúdo do arquivo em um arquivo de texto, em seu computador.

                        Se você tiver um problema, poderá restaurar facilmente o conteúdo original.

                        Como modificar seu arquivo .htaccess corretamente.

                        Para fazer qualquer alteração, siga o procedimento abaixo:

                        • Abra o arquivo em seu editor de código.
                        • Coloque suas adições no arquivo.
                        • Salve isso.
                        • Atualize seu site para ver se está tudo bem.

                        Atualizar seu site é muito importante: ajudará a ver se há algum problema com o código adicionado.

                        Em geral, um erro 500 “Internal Server Error” aparecerá na tela, se houver algum problema:

                        Exemplo de erro de servidor interno 500.

                        Nesse caso, desfaça suas alterações e salve novamente. Tudo deve voltar ao normal.

                        Às vezes, alguns hosts não aceitam código específico no arquivo .htaccess

                        Você terá que lidar com isso.

                        Entre em contato com o atendimento ao cliente do seu host para saber mais. Espero que ele só precise de uma pequena modificação para fazê-lo funcionar.

                        Você está enfrentando um erro do WordPress, como o erro 500 típico e generalizado? O WPMarmite oferece um guia completo para resolver os principais.

                        Desta vez, está tudo bem. Você sabe como funciona um arquivo .htaccess , como criá-lo e editá-lo corretamente.

                        Agora descubra como personalizá-lo em 5 lugares diferentes:

                        1. Na raiz do site
                        2. No wp-admin
                        3. Em wp-includes
                        4. Em wp-content
                        5. Em wp-content/uploads

                        Vamos começar imediatamente com a raiz do site. Você verá, esta será a peça mais consistente.

                        Como em qualquer linguagem de computador, o arquivo .htaccess permite incluir comentários. Para fazer isso, basta colocar o símbolo # no início de uma linha para que a linha seja ignorada. Isso é muito útil para lembrar o que as linhas de código executam. Você verá comentários nos exemplos deste artigo.

                        Como personalizar o arquivo .htaccess na raiz de um site?

                        Se sua instalação correu bem, você encontrará um arquivo .htaccess na raiz do seu site. Ele conterá o seguinte código:

                         # BEGIN WordPress RewriteEngine On RewriteBase / RewriteRule ^index\. php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress
                        Código padrão do arquivo .htaccess do WordPress

                        Se você estiver usando o WordPress no modo multisite, o código padrão do arquivo .htaccess será diferente. Isso não afetará você na maioria dos casos.

                        Agora que você localizou esse arquivo, poderá aprimorar seu conteúdo com os snippets de código abaixo para fazer algumas coisas específicas. Isso pode ser sobre segurança, mas também outras coisas.

                        Certifique-se de não incluir nenhum código entre os comentários # BEGIN WordPress e # END WordPress , pois é possível que este código seja modificado em alguns casos.

                        Outro lembrete: salve seu arquivo .htaccess original antes de fazer qualquer alteração. Você precisa ser capaz de voltar se tiver algum problema.

                        Desativar diretórios de exibição

                        Por padrão, se você tentar acessar os diretórios de um site, o servidor os exibirá. A formatação ficará assim:

                        Índice de /wp-inclui

                        Você pode imaginar que isso é pão com manteiga para hackers. O fato de que eles podem ver os arquivos em seu site vai ajudá-los a melhor atacá-lo. Insira o seguinte código em seu arquivo .htaccess para proteger seu site:

                         # Disable display of directory contents Options All -Indexes

                        Também é possível usar este código para evitar a listagem de diretórios:

                         # Alternative to prevent directory listing IndexIgnore *

                        Ocultar informações do servidor

                        Com alguns provedores de hospedagem, as páginas exibidas podem conter informações do servidor. Essas informações podem fornecer detalhes para possíveis invasores.

                        Portanto, é melhor ocultá-los com o seguinte código:

                         # Hide the information from server ServerSignature Off

                        Ative os seguintes links simbólicos

                        Devo estar falando bobagem completa para você, mas é importante inserir esta linha de código em seu arquivo .htaccess principal:

                         # Enable following symbolic links Options +FollowSymLinks

                        Isso permitirá que seu servidor siga os chamados links simbólicos, ou seja, códigos de acesso.

                        Defina seu servidor para o horário correto

                        Isso não é realmente importante, mas se o seu servidor estiver no exterior, você pode dizer a ele para definir seu fuso horário com esta linha de código:

                         # Choose time zone SetEnv TZ America/New_York

                        Definir codificação de caracteres padrão

                        O código a seguir permite definir a codificação de caracteres para arquivos de texto e HTML como UTF-8 (uma codificação de caracteres de computador). Sem isso, existe o risco de que os sotaques sejam mal interpretados.

                         # Default encoding of text and HTML files AddDefaultCharset UTF-8

                        Proteja wp-config.php

                        O arquivo de configuração do seu site ( wp-config.php ) contém as credenciais para se conectar ao banco de dados.

                        Este é o arquivo mais sensível do seu site. Pode ser alvo de hackers em potencial. Ele pode ser protegido adicionando este código ao arquivo .htaccess principal:

                         # Protect the wp-config.php file <files wp-config.php> order allow,deny deny from all </files>

                        Proteja o próprio arquivo .htaccess

                        Assim como o arquivo wp-config.php , o arquivo .htaccess deve ser protegido ao máximo. Para isso, insira este código:

                         # Protect .htaccess and .htpasswds files <Files ~ "^.*\.([Hh][Tt][AaPp])"> order allow,deny deny from all satisfy all </Files>

                        Limitar spam de comentários

                        Você sabe tão bem quanto eu, se você tem um blog, o spam de comentários é uma verdadeira dor.

                        Felizmente, existe um truque para evitar isso diretamente no arquivo .htaccess . Esta não é uma solução rápida, mas, combinado com o plugin Akismet, a maioria do spam deve ser filtrada.

                         # Avoid comment spam <IfModule mod_rewrite.c> RewriteCond %{REQUEST_METHOD} POST RewriteCond %{REQUEST_URI} .wp-comments-post\.php* RewriteCond %{HTTP_REFERER} !.mywebsite.com.* [OR] RewriteCond %{HTTP_USER_AGENT} ^$ RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L] </IfModule>

                        Não se esqueça de substituir mywebsite.com pelo seu nome de domínio.

                        Junte-se aos assinantes do WPMarmite

                        Obtenha os últimos posts do WPMarmite (e também recursos exclusivos).

                        INSCREVA-SE AGORA
                        Boletim em inglês do WPMarmite

                        Evitar a detecção do ID de um autor

                        Mesmo se você usar um login de usuário complexo, ele ainda poderá ser detectado.

                        Claro, estou assumindo que você ainda não está exibindo publicamente com seu tema (isso pode acontecer).

                        Tente digitar mywebsite.com/?author=x substituindo x por 1 para o administrador ou o ID de um de seus autores. Se você não estiver protegido, será redirecionado para uma página como mywebsite.com/author/author_id .

                        É assim que você encontra um ID de usuário em dois segundos. A partir daí, tudo o que resta é tentar adivinhar sua senha.

                        Para se proteger dessa técnica, use o seguinte código:

                         # Prevent the detection of an author's ID <IfModule mod_rewrite.c> RewriteCond %{QUERY_STRING} ^author=([0-9]*) RewriteRule .* - [F] </IfModule>

                        Desative o hotlinking de suas imagens

                        O que diabos é hotlinking? Não se preocupe, vou explicar tudo.

                        Basicamente, depois de adicionar imagens ao seu site (por exemplo, em um artigo), qualquer pessoa pode copiar o URL de uma de suas imagens e exibi-la em seu site.

                        Você pode pensar que isso não é tão ruim, mas se por algum motivo um site muito seguido pegar sua imagem e a exibir em uma de suas páginas, as solicitações serão feitas ao seu servidor.

                        Hotlinking está realmente roubando largura de banda. Se o seu site estiver instalado em um pequeno servidor compartilhado, seu host pode não gostar porque os recursos são limitados.

                        Para evitar o problema, insira e personalize este código em seu arquivo .htaccess :

                         # Disable hotlinking of your images RewriteEngine On RewriteCond %{HTTP_REFER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mywebsite.com [NC] RewriteRule \.(jpg|jpeg|png|gif)$ http://fakeimg.pl/400x200/?text=Do_not_touch_the_images [NC,R,L]
                        Substitua mywebsite.com pelo seu nome de domínio

                        Para permitir que determinados sites exibam suas imagens, use o seguinte código:

                         # Disable hotlinking of your images RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mywebsite.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mywebsite2.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mywebsite3.com [NC] RewriteRule \.(jpg|jpeg|png|gif)$ http://fakeimg.pl/400x200/?text=Do_not_touch_the_images [NC,R,L]
                        Substitua mywebsite.com, mywebsite2.com e mywebsite3.com pelos domínios de sua escolha

                        Você também pode personalizar a imagem que será exibida no lugar da imagem solicitada. Eu adicionei algo simples, mas você pode ser mais criativo.

                        Banir endereços IP

                        Se você notou que alguns endereços IP estão tentando fazer login na administração do seu site com muita frequência (por exemplo, com o plugin Login Lockdown), você pode se livrar deles banindo seu endereço IP.

                        Você também tem a possibilidade de recuperar os endereços IP de spammers de comentários para bani-los do seu site.

                        Essa solução não é permanente, pois o invasor pode alterar o endereço IP, mas pode funcionar contra indivíduos menos qualificados.

                         # Ban an IP address <Limit GET POST> order allow,deny deny from xxx.xxx.xxx.xxx allow from all </Limit>
                        Substitua xxx.xxx.xxx.xxx pelo endereço IP a ser banido

                        Bloquear visitantes de determinados sites

                        Se você perceber que um site não compatível está vinculado ao seu e não quiser que os visitantes desse site tenham acesso ao seu site, use este código:

                         # Prevent visitors to these sites from accessing yours <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_REFERER} mywebsite1.com [NC,OR] RewriteCond %{HTTP_REFERER} mywebsite2.com [NC,OR] RewriteRule .* - [F] </ifModule>
                        Substitua mywebsite1.com e mywebsite2.com pelos sites de sua escolha

                        Redirecionar visitantes de um site para outro

                        Para levar a dica anterior um passo adiante, você pode redirecionar os visitantes de determinados sites para outro site.

                        Segue o código a ser usado:

                         # Redirect visitors from one site to another RewriteEngine on RewriteCond %{HTTP_REFERER} sourcewebsite\.com/ RewriteRule ^(.*)$ http://www.destinationwebsite.com [R=301,L]
                        Substitua os sites de origem e destino pelos de sua escolha

                        Criar redirecionamentos

                        O arquivo .htaccess permite fazer redirecionamentos (redirecionar URL A para URL B).

                        Isso é útil para redirecionar algumas páginas, mas se você quiser criar muitos redirecionamentos, recomendo o plugin WordPress Redirection, que apresentei neste artigo.

                        Como criar redirecionamentos no arquivo .htaccess :

                         # Redirection of any page Redirect 301 /oldpage/ http://www.mywebsite.com/newpage # Redirection of a new category (with renaming from category to topic) Redirect 301 /category/technology/ http://www.mywebsite.com/topic/techno/

                        Redirecionar endereço sem www para um com www

                        Ao configurar um site, uma das ações a realizar primeiro é redirecionar o site sem o www para a versão com o www (ou vice-versa).

                        Se você fizer o teste na próxima vez que criar um site, descobrirá que os dois endereços não estão necessariamente vinculados ao seu site.

                        Em alguns casos, a empresa de hospedagem cuidará disso automaticamente, ou deve ser ativado através da página de administração do site de hospedagem (este é o caso do Gandi, por exemplo).

                        Se você precisar fazer esse redirecionamento manualmente, use o seguinte código substituindo mywebsite.com pelo seu site:

                         # Redirection of site without www to www RewriteEngine On RewriteCond %{HTTP_HOST} ^mywebsite. com [NC] RewriteRule ^(.*)$ http://www.mywebsite.com/$1 [L,R=301]
                        Substitua mywebsite.com pelo seu nome de domínio

                        Redirecionar endereço com www para um sem www

                        Por outro lado, se você não quiser o www na frente do nome do seu site (como no WPMarmite), é possível redirecionar para a versão sem o www .

                        Insira o seguinte código no arquivo .htaccess :

                        Atenção : Não use este código com o anterior ou seu site sofrerá um loop de redirecionamento (pois a versão sem www irá redirecionar para a versão com www que irá redirecionar para a versão sem www , etc.).

                        Redirecionar para HTTPS

                        Se você configurou um certificado SSL em seu site para alterá-lo para HTTPS, você precisa ter certeza de que todos os visitantes estão navegando na versão segura do seu site.

                        Caso contrário, informações confidenciais podem ser recuperadas por hackers (dados pessoais ou bancários, por exemplo).

                        Use o seguinte código para mudar todo o seu site para HTTPS:

                         # Redirection to HTTPS RewriteCond %{SERVER_PORT} ^80$ RewriteRule ^(. *)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

                        Forçar download de arquivos específicos

                        Quando você deseja baixar um arquivo de um site, às vezes seu navegador tenta abri-lo para exibi-lo.

                        Pessoalmente, acho isso conveniente para arquivos PDF. Por outro lado, é muito desagradável para outros tipos de arquivos.

                        Insira o seguinte código para fazer com que seus visitantes baixem arquivos com essas extensões diretamente (modifique-os como quiser):

                         # Force download for these file types AddType application/octet-stream .doc .docx .xls .xlsx .csv .mp3 .mp4

                        Criar uma página de manutenção personalizada

                        Em um artigo anterior, você descobriu uma seleção de plugins de manutenção. No entanto, há casos em que a página de manutenção não poderá ser exibida.

                        Isso é irritante, não é?

                        Para obter uma página de manutenção, você pode usar o seguinte código:

                         # Maintenance page RewriteEngine on RewriteCond %{REQUEST_URI} ! /maintenance.html$ RewriteCond %{REMOTE_ADDR} !^xxx\.xxx\.xxx\.xxx RewriteRule $ /maintenance.html [R=302,L]

                        Para que isso funcione, você precisa:

                        • Crie um arquivo maintenance.html com conteúdo indicando que o site está em manutenção.
                        • Adicione seu endereço IP na linha 4 (certificando-se de manter o “ \ ”) para permitir que você acesse o site (descubra seu endereço IP neste site).

                        Quando a manutenção estiver concluída, coloque “ # ” na frente de cada linha para passá-los como um comentário.

                        Ativar cache

                        O arquivo .htaccess permite que você armazene em cache certos arquivos em seu site no navegador do visitante para que eles carreguem mais rápido.

                        De fato, o navegador não precisará baixar novamente os arquivos em seu cache.

                        Para isso, insira o seguinte código:

                         # Caching of files in the browser <IfModule mod_expires.c> ExpiresActive On ExpiresDefault "access plus 1 month" ExpiresByType text/html "access plus 0 seconds" ExpiresByType text/xml "access plus 0 seconds" ExpiresByType application/xml "access plus 0 seconds" ExpiresByType application/json "access plus 0 seconds" ExpiresByType application/pdf "access plus 0 seconds" ExpiresByType application/rss+xml "access plus 1 hour" ExpiresByType application/atom+xml "access plus 1 hour" ExpiresByType application/x-font-ttf "access plus 1 month" ExpiresByType font/opentype "access plus 1 month" ExpiresByType application/x-font-woff "access plus 1 month" ExpiresByType application/x-font-woff2 "access plus 1 month" ExpiresByType image/svg+xml "access plus 1 month" ExpiresByType application/vnd.ms-fontobject "access plus 1 month" ExpiresByType image/jpg "access plus 1 month" ExpiresByType image/jpeg "access plus 1 month" ExpiresByType image/gif "access plus 1 month" ExpiresByType image/png "access plus 1 month" ExpiresByType video/ogg "access plus 1 month" ExpiresByType audio/ogg "access plus 1 month" ExpiresByType video/mp4 "access plus 1 month" ExpiresByType video/webm "access plus 1 month" ExpiresByType text/css "access plus 6 month" ExpiresByType application/javascript "access plus 6 month" ExpiresByType application/x-shockwave-flash "access plus 1 week" ExpiresByType image/x-icon "access plus 1 week" </IfModule> # Headers Header unset ETag FileETag None <ifModule mod_headers.c> <filesMatch "\.(ico|jpe?g|png|gif|swf)$"> Header set Cache-Control "public" </filesMatch> <filesMatch "\.(css)$"> Header set Cache-Control "public" </filesMatch> <filesMatch "\.(js)$"> Header set Cache-Control "private" </filesMatch> <filesMatch "\.(x?html?|php)$"> Header set Cache-Control "private, must-revalidate" </filesMatch> </ifModule>

                        O armazenamento em cache de arquivos será efetivo pela duração especificada para cada tipo de arquivo ou até que o visitante limpe seu cache.

                        Para acelerar seu site com cache, recomendo usar o plugin premium WP Rocket (link afiliado). Como é simples e rápido de configurar, é perfeito para iniciantes no WordPress. Com sua ajuda, você não precisará usar o snippet (pedaço de código) oferecido acima.

                        Acelere seu site com o WP Rocket

                        Transforme seu site em um foguete com o plugin de cache mais poderoso reconhecido por especialistas em WordPress.
                        Experimente o WP Rocket
                        Logo WP Rocket

                        Permitir compressão

                        Além de tudo que vimos até agora, é possível compactar alguns recursos antes de serem transferidos do servidor para o navegador.

                        E a compactação de arquivos significa uma velocidade de carregamento de página mais rápida. Portanto, recomendo que você implemente este código para aumentar a velocidade do seu site:

                         # Compression of static files <IfModule mod_deflate. c> AddOutputFilterByType DEFLATE text/xhtml text/html text/plain text/xml text/javascript application/x- javascript text/css BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\. 0 [678] no-gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/html SetEnvIfNoCase Request_URI \. (?:gif|jpe?g|png)$ no-gzip dont-vary Header append Vary User-Agent env=! dont- vary </IfModule> AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE text/javascript AddOutputFilterByType DEFLATE font/opentype AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/json

                        Desabilitar o acesso a determinados scripts

                        Para funcionar, o WordPress usa scripts localizados no diretório wp-includes . No entanto, não há razão para acessá-los diretamente. Use este código para limitar o acesso:

                         # Block the use of certain scripts 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]

                        Proteção contra injeções de arquivos

                        Os hackers podem tentar enviar arquivos ao seu servidor para assumir o controle do seu site. Para jogar uma chave inglesa no caminho deles, você pode incluir este código em seu arquivo .htaccess :

                         # Protection against file injections RewriteCond %{REQUEST_METHOD} GET RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=http:// [OR] RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(\.\.//?)+ [OR] RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [NC] RewriteRule .* - [F]

                        Proteção contra outras ameaças

                        No Facebook, Richard me disse que era possível se proteger contra clickjacking e outras ameaças adicionando algumas linhas no arquivo .htaccess .

                        Para sua informação, clickjacking é uma técnica que ajuda a fazer um visitante acreditar que está em seu site, quando não está, usando tags frame ou iframe .

                        Portanto, o código a seguir ajuda a protegê-lo de clickjacking, combate outras ameaças como MIME Sniffing e bloqueia conteúdo em caso de ataque XSS (que injeta HTML ou JavaScript em variáveis ​​mal protegidas).

                         # Various protections (XSS, clickjacking and MIME-Type sniffing) <ifModule mod_headers.c> Header set X-XSS-Protection "1; mode=block" Header always append X-Frame-Options SAMEORIGIN Header set X-Content-Type-Options: "nosniff” </ifModule>

                        E é isso, você acabou de passar por um monte de otimizações para incorporar no arquivo .htaccess localizado na raiz do site.

                        Vamos em frente: novos pedaços de código para as pastas wp-admin , wp-icludes , wp-content e wp-content/uploads .

                        Como personalizar o arquivo .htaccess no wp-admin

                        wp-admin é o covil do seu site. O lugar onde você vai para escrever artigos, configurar seus menus, configurar seu tema e muito mais.

                        Escusado será dizer que nenhuma pessoa não autorizada deve entrar neste paraíso. Caso contrário, cuidado com as consequências.

                        Aqui está o que você pode fazer para fortalecer a segurança com um arquivo .htaccess que você coloca na pasta wp-admin do seu site.

                        Limitar o acesso à administração do site

                        Somente pessoas com os IPs listados poderão acessar a pasta wp-admin . Muito útil para evitar que estranhos entrem no seu site (mesmo que tenham a senha correta).

                         <Limit GET POST PUT> order deny,allow deny from all # Alex's IP allow from xxx.xxx.xxx.xxx # Nico's IP allow from xxx.xxx.xxx.xxx # IP of another access point allow from xxx.xxx.xxx.xxx </Limit>

                        Adicionar uma segunda autenticação

                        Ao fazer login no administrador de um site WordPress, você usa um login e uma senha. Bem, é possível adicionar um segundo através do arquivo .htaccess , e outro arquivo.

                        Primeiro, crie um arquivo chamado .htpasswd no diretório wp-admin e insira um par de nome de usuário e senha nele. Use este site para guiá-lo:

                        A interface da ferramenta HTPasswd Generator.

                        Digite o nome de usuário que deseja usar no primeiro campo e sua senha no segundo, depois clique em “Gerar arquivo .htpasswd ”.

                        Em seguida, copie a linha que aparecerá no arquivo .htpasswd . Se você precisar criar vários usuários, repita o processo e adicione o novo par de nome de usuário/senha em uma nova linha.

                        Por exemplo, você pode obter este tipo de arquivo:

                         alex:ieS547B1UxY8M jack:rSqEJf0SeTlRs
                        Conteúdo fictício de um arquivo .htpasswd

                        Em seguida, insira o seguinte código no arquivo .htaccess :

                         # Second authentication for administration <Files admin-ajax.php> Order allow,deny Allow from all Satisfy any </Files> AuthName "Login to the administration" AuthType Basic AuthUserFile "/full/path/to/the/file/.htpasswd" Require valid-user

                        A parte complicada desta operação é obter o caminho completo para o arquivo .htpasswd correto. Para encontrá-lo com certeza, crie um arquivo info.php e insira o seguinte código:

                         <?php echo "Path to copy: " . realpath('.htaccess'); ?>
                        Coloque o arquivo info.php no wp-admin

                        Vá para yourwebsite.com/wp-admin/info.php e você obterá o caminho real do arquivo .htpasswd a ser colocado no arquivo .htaccess . Exclua o arquivo info.php assim que encontrar o caminho correto.

                        Se você inserir esse código como está, as solicitações AJAX não funcionarão mais. Use o snippet abaixo para corrigir o problema :

                         AuthType Basic AuthName "Protected page" AuthUserFile /home/.htpasswd Require valid-user <Files admin-ajax.php> Order allow,deny Allow from all Satisfy any </Files> <Files admin-post.php> Order allow,deny Allow from all Satisfy any </Files> <Files "\.(css|gif|png|js)$"> Order allow,deny Allow from all Satisfy any </Files>
                        Coloque o arquivo info.php no wp-admin

                        Se você entendeu tudo o que acabei de mencionar, você deve ter autenticação dupla para acessar a administração do WordPress.

                        Vamos para a próxima parte.

                        Como personalizar o arquivo .htaccess no wp-includes?

                        Bloqueie o acesso direto a arquivos PHP

                        Crie um arquivo .htaccess em wp-includes e cole o seguinte código nele para evitar que arquivos PHP sejam carregados diretamente.

                         # Blocks direct access to PHP files (Thanks to Sucuri) <Files wp-tinymce.php> allow from all </Files> <FilesMatch "\.(?i:php)$"> <IfModule !mod_authz_core.c> Order allow,deny Deny from all </IfModule> <IfModule mod_authz_core.c> Require all denied </IfModule> </FilesMatch> <Files wp-tinymce.php> Allow from all </Files> <Files ms-files.php> Allow from all </Files>

                        O código acima é fornecido pelo plugin Sucuri.

                        Como personalizar o arquivo .htaccess no wp-content?

                        Bloqueie o acesso direto a arquivos PHP

                        Para a pasta wp-content , o código é semelhante, apenas com as exceções removidas:

                         # Blocks direct access to PHP files (Thanks to Sucuri) <FilesMatch "\.(?i:php)$"> <IfModule !mod_authz_core.c> Order allow,deny Deny from all </IfModule> <IfModule mod_authz_core.c> Require all denied </IfModule> </FilesMatch>

                        Como personalizar o arquivo .htaccess em wp-content/uploads?

                        Bloqueie o acesso direto a arquivos PHP

                        Com este mesmo código, proteja a pasta onde a mídia está armazenada para evitar que arquivos PHP sejam executados por alguém de fora (um hacker maldoso, por exemplo).

                         # Blocks direct access to PHP files (Thanks to Sucuri) <FilesMatch "\. (?i:php)$"> <IfModule ! mod_authz_core.c> Order allow,deny Deny from all </IfModule> <IfModule mod_authz_core. c> Require all denied </IfModule> </FilesMatch>

                        Recapitulação final do arquivo .htacess no WordPress

                        Como você descobriu ao longo deste guia, o arquivo .htaccess é uma ferramenta muito poderosa para configurar o servidor do seu site.

                        Quando manuseado com cuidado e cautela, pode melhorar a segurança, o desempenho, o SEO ou até mesmo a experiência do usuário do seu site.

                        O arquivo #htaccess do seu site #WordPress é uma ferramenta poderosa. Descubra como funciona e configure-o como um chef com as dicas do WPMarmite.

                        Clique para Tweetar

                        Mais uma vez, recomendo que você sempre mantenha um backup do seu arquivo .htaccess original para fazer um reset caso haja algum problema.

                        Prossiga com suas alterações com extremo cuidado (eu terei avisado!). Erros ou incompatibilidades podem ocorrer dependendo do host do seu site.

                        Embora bastante coisa tenha sido abordada neste artigo, é possível ir mais longe na configuração do seu .htaccess , usando vários recursos:

                        • A documentação do WordPress e a documentação do Apache (o software que executa seu servidor).
                        • O blog Perishable Press, que tem até um livro pago sobre o assunto.

                        Antes de me despedir, gostaria de sua opinião nos comentários. Você personalizou seu arquivo .htaccess ?

                        E o mais importante, sinta-se à vontade para compartilhar quaisquer trechos de código que você está acostumado a usar com outros leitores.