Arquivo .htaccess WordPress – Otimização 2022

Arquivo .htaccess do WordPress: Como usar o arquivo .htaccess

Arquivo .htaccess do WordPress: o arquivo .htaccess é um importante arquivo principal do WordPress que é frequentemente usado para adicionar, modificar e substituir configurações no nível do servidor, parâmetros de segurança e desempenho.

O que é um arquivo .htaccess?

Um arquivo .htaccess é o coração do seu site, que contém regras básicas que regem toda a comunicação com o seu WordPress e hospedagem na web. Especificamente, você pode usar o arquivo .htaccess no WordPress para tarefas como controlar o acesso a páginas da Web, melhorar a segurança e o desempenho.

Mas atenção!
Um único ponto mal posicionado (.) pode potencialmente travar seu site. Portanto, antes de fazer qualquer alteração no arquivo .htaccess, salve o arquivo em um local externo primeiro. Se algo der errado ou você precisar de ajuda, entre em contato com seu provedor de hospedagem na web ou um webmaster experiente.

O arquivo .htaccess padrão no WordPress

O arquivo .htaccess vem com cada instalação do WordPress e geralmente está localizado no diretório raiz. Dada a importância do arquivo, muitas vezes é oculto (não tem extensão de arquivo) e não aparece nas listas de arquivos e pastas, principalmente porque o gerenciador de arquivos o esconde por razões de segurança.

Em casos raros, é possível que não haja nenhum arquivo .htaccess na pasta raiz. Se este for o seu caso, você pode criar um arquivo .htaccess no WordPress usando o Bloco de Notas (ou qualquer editor de texto de sua escolha) e salvá-lo sob o nome “.htaccess”. Defina o “Tipo de arquivo” para “Todos os arquivos” e envie-os para o diretório raiz da sua instalação do WordPress.

IMPORTANTE: Certifique-se de que o nome do arquivo NÃO é “htaccess” sem (.) – mas .htaccess com um ponto (.) no início.

Veja como é o arquivo .htaccess padrão para WordPress:

# 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

Se o arquivo .htaccess ainda não existir no seu diretório raiz, você pode criá-lo no painel do WordPress em: -> Configurações -> Permalinks e, em seguida, clique em “Salvar alterações”, como mostrado na imagem abaixo. Isso gerará o arquivo .htaccess padrão para WordPress no diretório raiz.

permalinks
Crie o arquivo .htaccess no painel do WordPress.

O arquivo .htaccess padrão do WordPress lida apenas com permalinks do seu site. No entanto, isso pode ser alterado e regras adicionais podem ser adicionadas. Isso permite que você controle como o servidor web Apache lida com solicitações relacionadas à operação.

Como faço para editar um arquivo .htaccess no WordPress?

Para editar o arquivo .htaccess no WordPress, vá para o diretório raiz. Você pode fazer isso através do gerenciador de arquivos fornecido pelo seu provedor WordPress ou hoster, ou através de um cliente FTP como FileZilla.

Faça login na sua conta de hospedagem na web e navegue até a pasta “public_html” e procure o arquivo .htaccess na instalação do WordPress.

JoeWP - arquivo .htaccess no servidor
Arquivo .htaccess no diretório raiz do WordPress

Clique com o botão direito do rato no ficheiro e, em seguida, clique na opção “Ver/Editar” para o abrir no seu editor de texto favorito. Edite as alterações necessárias e salve o arquivo.

Outra maneira de editar o arquivo .htaccess do WordPress é fazer uma cópia no sistema local. Quando terminar, substitua a versão ao vivo via FTP ou o gerenciador de arquivos.

WordPress .htaccess Redirecionamentos

Como mostrado acima, o arquivo .htaccess no WordPress pode ser usado para controlar redirecionamentos de sites. Aqui estão algumas regras comumente usadas para ajudá-lo a configurar e controlar redirecionamentos em seus sites WordPress.

Redirecionamento 301 (permanente)

Um redirecionamento 301 informa aos mecanismos de pesquisa que um URL foi movido permanentemente para outro local. Isso não se limita apenas a URLs, e você pode redirecionar uma pasta, uma página ou até mesmo um site inteiro. O trecho a seguir redireciona o alteseite.html para neueseite.html:

Redirect 301 /alteseite.html http://www.ihrewebsite.com/neueseite.html

Redirecionamento 302 (temporário)

Ao contrário do 301, o redirecionamento 302 diz aos motores de busca que esse redirecionamento é temporário. Esta é uma ótima maneira de retardar (ou até mesmo evitar) embaralhamentos SERP. Adicione a seguinte linha ao arquivo .htaccess:

Redirect 302 /alteseite.html http : //www.ihrewebsite.com/neueseite.html

Forçar URL em www

A seguinte regra .htaccess no WordPress redireciona todos os visitantes de example.com para: www.example.com.

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

Forçar URL para não-www

A seguinte regra .htaccess redireciona todos os visitantes de www.example.com para example.com.

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

Impor HTTPs

A regra a seguir no arquivo .htaccess do WordPress força todos os seus visitantes a usar HTTPS em vez de HTTP para todos os URLs.

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

Impor HTTP

A regra a seguir no arquivo htaccess para WordPress força seus visitantes a usar HTTP em vez de HTTPS para todas as URLs.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} ^https$
RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI}</IfModule>

Redirecionar domínio para subdiretório

A regra a seguir redireciona a URL raiz do domínio para o subdiretório de sua escolha.

RewriteCond %{HTTP_HOST} ^example.com$
RewriteCond %{REQUEST_URI} !^/sub-directory-name/
RewriteRule (.*) /subdir/$1

URL de redirecionamento

Se você tiver dois domínios servindo o mesmo site, a regra .htaccess mencionada abaixo redirecionará um domínio para o outro.

Redirect 301 / http://www.mynewwebsite.com/

WordPress .htaccess Dicas de Segurança

O arquivo .htaccess também pode ser usado para fazer backup de diretórios WordPress e arquivos WordPress para o servidor. Aqui estão algumas regras muito importantes que os usuários podem aplicar para sites WordPress seguros.

Como posso proteger o .htaccess?

O arquivo .htaccess pode potencialmente controlar todo o site. Com isso em mente, é fundamental que o .htaccess seja protegido contra usuários não autorizados. Você pode usar o trecho a seguir para restringir o acesso de todos os usuários não autorizados.

Basta copiar o trecho e colá-lo no arquivo .htaccess.

<files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</files>

Como posso restringir o acesso ao painel de administração do WordPress?

Imagine o cenário (terrível) de alguém ter acesso ao seu painel de administração do WordPress. Tal ataque pode causar danos extremos ou destruir completamente o seu site.

Para evitar que isso aconteça, você pode restringir o acesso ao painel de administração do WordPress a apenas um IP específico.

Para fazer isso, crie outro arquivo .htaccess e cole o seguinte trecho nele. Em seguida, envie-o para a pasta “www.yourwebsite.com/wp-admin/” via FTP.

# Limit logins and admin by IP
<Limit GET POST PUT>
order deny,allow
deny from all
allow from xx.xx.xx.xx
</Limit>

Dica: Não se esqueça de substituir “xx.xx.xx.xx” no código acima pelo seu endereço IP permitido.

Agora, se alguém não estiver na lista de IP aprovado, não poderá fazer login no seu site. Em vez disso, o seguinte erro seria exibido:

Erro interno do servidor

Como posso fazer backup de arquivos importantes?

Você pode usar o arquivo .htaccess no WordPress para proteger arquivos importantes, como logs de erros, wp-config.php e php.ini. Use o seguinte trecho:

<FilesMatch "^.*(error_log|wp-config\.php|php.ini|\.[hH][tT][aApP].*)$">
Order deny,allow
Deny from all
</FilesMatch>

Como posso proteger o ficheiro wp-config.php?

Na sua instalação do WordPress, o arquivo é wp-config.php o arquivo que armazena a hospedagem, o banco de dados e outras credenciais importantes. É, portanto, existencial que este arquivo está protegido contra qualquer acesso não autorizado.

Para fazer isso, basta copiar as seguintes linhas e colá-las em seu arquivo .htaccess.

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

Como posso proteger a pasta /wp-content/?

A pasta “wp-content” contém todos os arquivos importantes do seu tema, os plugins, a mídia e arquivos em cache. É por isso que este diretório é o principal alvo de ataques de hackers e spammers gostam especialmente de usá-lo. Para proteger essa pasta contra acesso não autorizado, crie um arquivo .htaccess separado na pasta wp-content. Em seguida, copie e cole o seguinte trecho no arquivo:

Order deny,allow
Deny from all
<Files ~ ".(xml|css|jpe?g|png|gif|js)$">
Allow from all
</Files>

A regra acima só permitiria que os usuários carregassem arquivos com as extensões permitidas (XML, CSS, JPG, JPEG, PNG, GIF e JavaScript). Todos os outros tipos de ficheiro serão rejeitados.

Como posso proteger os ficheiros wp-includes?

Algumas áreas da sua instalação do WordPress nunca devem ser acessíveis para o usuário médio. É sempre recomendável bloquear todo o acesso a esses arquivos. Você pode configurar as restrições de acesso adicionando o seguinte trecho ao 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>

Como posso desativar a execução do PHP?

Restringir a execução de código PHP para todos ou diretórios selecionados do site WordPress é uma prática de segurança importante. Crie um arquivo htaccess em uma pasta onde você não deseja executar scripts PHP e adicione o seguinte trecho.

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

Certas pastas do WordPress, como /wp-includes/ e /wp-content/uploads/ são graváveis por padrão. Esse tipo de permissão permite que os usuários carreguem mídia ou diferentes tipos de arquivos. É sempre recomendável desativar a execução do PHP nesses diretórios.

Como posso restringir o acesso aos ficheiros?

Restringir o acesso ao wp-admin é um requisito importante, especialmente quando vários membros da equipe estão envolvidos no gerenciamento e atualização do site.

Na prática, isso significa que os usuários não podem acessar arquivos confidenciais, como plugins, temas e pastas de ativos.

.htaccess é uma ótima maneira de proteger o acesso direto para editar arquivos PHP de plugins e temas, tornando mais difícil para os hackers injetarem código malicioso. Para fazer isso, basta adicionar as seguintes linhas ao arquivo:

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]

Como posso fornecer proteção de injeção para scripts?

A injeção de script é uma técnica notória em que o invasor “injeta” código malicioso no código do site para extrair dados ou assumir o controle do site. Adicionar o seguinte trecho ao arquivo WordPress “.htaccess” pode proteger seu site contra tais ataques.

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]

Como posso bloquear o meu endereço IP?

Se alguém abusar do seu site, fizer spam continuamente ou iniciar tentativas de hacking, seu IP ficará visível na área de administração do WordPress. Para bloquear o IP, basta usar o arquivo .htaccess para controlar o acesso ao seu site. Basta copiar o seguinte trecho e colá-lo no arquivo .htaccess. Isso corrigirá esse problema específico imediatamente. Lembre-se de substituir o IP de amostra pelo do spammer.

<Limit GET POST>
order allow,deny
deny from 123.456.78.9
allow from all
</Limit>

Como posso negar o acesso a determinados ficheiros?

Pretende restringir o acesso a ficheiros específicos? Não há problema. Use a seguinte regra .htaccess para bloquear o acesso a arquivos individuais.

<files your-file-name.txt>
order allow,deny
deny from all
</files>

Como posso desativar a pesquisa de diretórios?

O acesso não autorizado a arquivos e pastas do site é um grande risco de segurança que pode potencialmente paralisar todo o site.

Adicionar o seguinte trecho ao seu arquivo .htaccess pode controlar e/ou desabilitar o acesso aos diretórios do site para todos os usuários.

# disable directory browsing
Options All -Indexes

htaccess regras para melhoria de desempenho

O arquivo .htaccess no WordPress também pode ser usado para melhorar o desempenho / desempenho do seu site. Basta copiar e colar os trechos relevantes no arquivo .htaccess

Como posso ativar o cache do navegador?

O cache do navegador é um espaço de armazenamento temporário no seu sistema para os arquivos baixados do seu navegador da Web para renderizar sites corretamente. Esses arquivos podem conter HTML, CSS, JavaScript, bem como imagens e outros conteúdos multimídia.

No arquivo .htaccess do WordPress, você pode definir regras para quanto tempo certos arquivos devem ser armazenados em cache. Os seguintes limites de expiração são definidos com base no uso comum. Para habilitar o cache do navegador, cole o seguinte trecho no arquivo htaccess.

<IfModule mod_expires.c>
        ExpiresActive on
        ExpiresDefault                                    "access plus 1 month"
    # CSS
        ExpiresByType text/css                            "access plus 1 year"
    # Data interchange
        ExpiresByType application/json                    "access plus 0 seconds"
        ExpiresByType application/xml                     "access plus 0 seconds"
        ExpiresByType text/xml                            "access plus 0 seconds"
    # Favicon (cannot be renamed!)
        ExpiresByType image/x-icon                        "access plus 1 week"
    # HTML components (HTCs)
        ExpiresByType text/x-component                    "access plus 1 month"
    # HTML
        ExpiresByType text/html                           "access plus 0 seconds"
    # JavaScript
        ExpiresByType application/javascript              "access plus 1 year"
    # Manifest files
        ExpiresByType application/x-web-app-manifest+json "access plus 0 seconds"
        ExpiresByType text/cache-manifest                 "access plus 0 seconds"
    # Media
        ExpiresByType audio/ogg                           "access plus 1 month"
        ExpiresByType image/gif                           "access plus 1 month"
        ExpiresByType image/jpeg                          "access plus 1 month"
        ExpiresByType image/png                           "access plus 1 month"
        ExpiresByType video/mp4                           "access plus 1 month"
        ExpiresByType video/ogg                           "access plus 1 month"
        ExpiresByType video/webm                          "access plus 1 month"
    # Web feeds
        ExpiresByType application/atom+xml                "access plus 1 hour"
        ExpiresByType application/rss+xml                 "access plus 1 hour"
    # Web fonts
        ExpiresByType application/font-woff2              "access plus 1 month"
        ExpiresByType application/font-woff               "access plus 1 month"
        ExpiresByType application/vnd.ms-fontobject       "access plus 1 month"
        ExpiresByType application/x-font-ttf              "access plus 1 month"
        ExpiresByType font/opentype                       "access plus 1 month"
        ExpiresByType image/svg+xml                       "access plus 1 month"
</IfModule>

Como posso ativar a compressão Gzip?

Gzip é um algoritmo de compressão extremamente poderoso que encontra strings semelhantes em um arquivo de texto e as substitui temporariamente. Isso reduzirá significativamente o tamanho geral do arquivo. Por esta razão, o Gzip é frequentemente usado como uma ferramenta importante para otimizar a velocidade de carregamento da página do site .

A compressão Gzip é frequentemente usada no nível do servidor, e muitos provedores de hospedagem a habilitam por padrão. Em alguns plugins de cache, como “WP Rocket“, o código correspondente é inserido automaticamente. Em seguida, você pode verificar isso em seu arquivo .htaccess. No entanto, se por algum motivo isso não funcionar, você pode adicionar o seguinte trecho ao arquivo .htaccess.

<IfModule mod_deflate.c>
  # Compress HTML, CSS, JavaScript, Text, XML and fonts
  AddOutputFilterByType DEFLATE application/javascript
  AddOutputFilterByType DEFLATE application/rss+xml
  AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
  AddOutputFilterByType DEFLATE application/x-font
  AddOutputFilterByType DEFLATE application/x-font-opentype
  AddOutputFilterByType DEFLATE application/x-font-otf
  AddOutputFilterByType DEFLATE application/x-font-truetype
  AddOutputFilterByType DEFLATE application/x-font-ttf
  AddOutputFilterByType DEFLATE application/x-javascript
  AddOutputFilterByType DEFLATE application/xhtml+xml
  AddOutputFilterByType DEFLATE application/xml
  AddOutputFilterByType DEFLATE font/opentype
  AddOutputFilterByType DEFLATE font/otf
  AddOutputFilterByType DEFLATE font/ttf
  AddOutputFilterByType DEFLATE image/svg+xml
  AddOutputFilterByType DEFLATE image/x-icon
  AddOutputFilterByType DEFLATE text/css
  AddOutputFilterByType DEFLATE text/html
  AddOutputFilterByType DEFLATE text/javascript
  AddOutputFilterByType DEFLATE text/plain
  AddOutputFilterByType DEFLATE text/xml
  # Remove browser bugs (only needed for really old browsers)
  BrowserMatch ^Mozilla/4 gzip-only-text/html
  BrowserMatch ^Mozilla/4\.0[678] no-gzip
  BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
  Header append Vary User-Agent
</IfModule>

Como posso controlar/restringir o hotlink de imagem?

O hotlinking de imagem pode afetar significativamente o uso da largura de banda porque sempre que um recurso externo solicita uma imagem, a largura de banda do servidor é usada para servir a imagem.

Para reduzir o consumo de largura de banda devido a hotlinks de imagem, você pode adicionar o seguinte trecho de código ao arquivo .htaccess:

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

htaccess para WordPress Multisite (WPMU)

O arquivo .htaccess padrão para WordPress Multisite é ligeiramente diferente do arquivo .htaccess padrão do WordPress.

htaccess padrão para subpastas WPMU

Se a sua rede multisite WordPress é baseada em subpastas, o arquivo .htaccess padrão deve ser algo como isto:

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]

htaccess padrão para subdomínios WPMU

Se a sua rede multisite WordPress é baseada em subdomínios, o arquivo .htaccess padrão deve ter esta aparência:

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]

Resultado

Quando se trata de configuração do servidor, o arquivo .htaccess do WordPress é um dos arquivos mais importantes em seu servidor. É frequentemente usado para configurar o seu servidor web e para proteger e otimizar diferentes áreas do seu site.

JoeWP WordPress Agency - Pedido

Você quer que otimizemos o arquivo .htaccess no WordPress?