15 Trechos de .htaccess úteis para o seu site WordPress
Tendo uma arquivo .htaccess bem configurado é crucial se você quiser aumentar a segurança e reduzir vulnerabilidades no seu site WordPress. Normalmente, o principal objetivo de criar um arquivo .htaccess personalizado é impedir que seu site seja invadido, mas também é uma excelente maneira de lidar com redirecionamentos e gerenciar tarefas relacionadas a cache.
.htaccess é um arquivo de configuração usado nos servidores da web Apache. A maioria dos sites do WordPress executado em um servidor Apache, embora uma pequena porção seja alimentado por Nginx. Neste artigo, você pode encontrar um coleção de snippets de código .htaccess, a maioria dos quais você pode usar para proteger seu site, enquanto o resto implementa outros recursos úteis.
Não se esqueça de fazer backup do arquivo .htaccess antes de editá-lo para que você possa sempre voltar para a versão anterior se algo der errado.
E, se você é alguém que não toca nos arquivos de configuração, eu recomendo Segurança BulletProof plugin que é o mais confiável (e provavelmente o mais antigo) plugin de segurança livre .htaccess no mercado.
Crie o wt padrão .htaccess
.htaccess funciona em um por diretório o que significa que cada diretório pode ter seu próprio arquivo .htaccess. Pode acontecer facilmente que o seu site WordPress ainda não tem um arquivo .htaccess. Se você não encontrar um arquivo .htaccess em seu diretório raiz criar um arquivo de texto vazio e nomeie-o para .htaccess
.
Abaixo, você pode encontrar o htaccess padrão WordPress usa. Sempre que você precisar deste código, você pode procurar rapidamente no WordPress Codex. Note que há um .htaccess diferente para WP Multisite.
# BEGIN WordPressRewriteEngine Em RewriteBase / RewriteRule ^ index \ .php $ - [L] Em RewriteCond% REQUEST_FILENAME! -F RewriteCond% REQUEST_FILENAME! -D RewriteRule. /index.php [L] # END WordPress
As linhas que começam com #
são comentários. Não edite nada entre as linhas # BEGIN WordPress
e # END WordPress
. Adicione suas regras de .htaccess personalizadas abaixo dessas regras padrão.
Todos os snippets de código que você pode encontrar neste artigo vá para o arquivo .htaccess principal encontrado em seu diretório raiz.
1. Negar acesso a todos os arquivos .htaccess
O código abaixo nega acesso para todos os arquivos .htaccess que você instalou no seu WordPress. Desta forma, você pode impedir que as pessoas vejam o seu configurações do servidor da web.
# Negar acesso a todos os arquivos .htaccessEncomendar Permitir, Negar Negar de tudo Satisfazer tudo
2. Proteja sua configuração do WP
o wp-config.php
arquivo contém todas as suas configurações do WP, incluindo seu login e senha do banco de dados. Você pode negar isso a todos ou dar permissão aos administradores para acessá-lo.
Se você escolher o último comentar a # Permitir de xx.xx.xx.xxx
linha (remova #
desde o início da linha) e insira o endereço IP do administrador no lugar de xx.xx.xx.xxx
.
# Protege o wp-configEncomendar Permitir, Negar # Permitir de xx.xx.xx.xxx # Permitir de yy.yy.yy.yyy Negar por todos
3. Impedir ataque DDoS de XML-RPC
WordPress suporta XML-RPC por padrão, que é um interface que faz publicação remota possível. No entanto, embora seja um ótimo recurso, é também uma das maiores vulnerabilidades de segurança do WP, já que os hackers podem explorá-lo para ataques DDoS.
Se você não quiser usar esse recurso, é melhor apenas desativá-lo. Assim como antes, você pode adicionar exceções comentando a # Permitir de xx.xx.xx.xxx
linha e adicionando os IPs do seu admin (s).
# Protege o XML-RPC, previne ataques DDoSOrdem Negar, Permitir # Permitir de xx.xx.xx.xxx # Permitir de yy.yy.yy.yyy Negar de todos
4. Proteja sua área de administração
Também é uma boa ideia proteger a área administrativa dando acesso apenas aos administradores. Aqui, não esqueça de adicione pelo menos um “Permitir” exceção caso contrário, você não poderá acessar seu administrador.
# Protege a área de administração por IP AuthUserFile / dev / null AuthGroupFile / dev / null Nome_Automático "Controle de Acesso ao Administrador do WordPress" AuthType BasicOrdem Negar, Permitir Negar de todos os Permissões de xx.xx.xx.xxx Permitir de yy.yy.yy.yyy
5. Impedir listagem de diretórios
A maioria dos sites WordPress não desabilita a listagem de diretórios, o que significa que qualquer um pode procure suas pastas e arquivos, incluindo uploads de mídia e arquivos de plugin. É desnecessário dizer que esta é uma enorme vulnerabilidade de segurança.
Abaixo, você pode ver como listagem típica do diretório WordPress parece.
Felizmente, você só precisa uma linha de código para bloquear esse recurso. Este trecho de código será devolve uma mensagem de erro 403 para quem quiser acessar seus diretórios.
# Impede a listagem de diretórios Opções -Indexes
6. Impedir enumeração de nome de usuário
Se os permalinks do WP estão habilitados, é muito fácil enumere nomes de usuários usando os arquivos do autor. Os nomes de usuários revelados (incluindo o nome de usuário do administrador) podem ser usados ataques de força bruta.
Insira o código abaixo em seu arquivo .htaccess para impedir enumeração de nome de usuário.
# Impede a enumeração de nome de usuário RewriteCond% QUERY_STRING author = d RewriteRule ^ /? [L, R = 301]
7. Bloquear spammers e bots
Às vezes você pode querer restringir o acesso de determinados endereços IP. Este snippet de código fornece uma maneira fácil de bloquear spammers e bots que você já conhece.
# Bloqueia spammers e botsEncomendar Permitir, Negar Negar em xx.xx.xx.xxx Negar em yy.yy.yy.yyy Permitir de todos
8. Evitar hotlinking de imagem
Embora não seja uma ameaça à segurança, hotlinking imagem ainda é uma coisa chata. As pessoas não só use suas imagens sem sua permissão mas eles até fazem isso a seu custo. Com essas poucas linhas de código, você pode proteger seu site de hotlinking de imagem.
# Impede a imagem hotlinking RewriteEngine em RewriteCond% HTTP_REFERER! ^ $ RewriteCond% HTTP_REFERER! Http (s)?: // (www \.)? Yourwebsite.com [NC]% RewriteCond% HTTP_REFERER! ^ Http ( s)?: // (www \.)? yourwebsite2.com [NC] Regra de regravação \. (jpe? g? | png | gif | ico | pdf | flv | swf | gz) $ - [NC, F, L]
9. Restringir o acesso direto aos arquivos PHP de plugins e temas
Pode ser perigoso se alguém chama diretamente seus arquivos de plugins e de temas, se isso acontece acidentalmente ou por um atacante mal-intencionado. Este trecho de código vem da empresa de segurança de sites Acunetix; você pode ler mais sobre essa vulnerabilidade em sua postagem no blog.
# Restringe o acesso a arquivos PHP dos diretórios de plugins e temas RewriteCond% REQUEST_URI! ^ / Wp-content / plugins / file / to / exclude \ .php RewriteCond% REQUEST_URI! ^ / Wp-content / plugins / directory / / exclude / RewriteRule wp-content / plugins / (. * \ .php) $ - [R = 404, L]% de RewriteCond REQUEST_URI! ^ / wp-content / themes / arquivo / para / excluir \ .php RewriteCond% REQUEST_URI! ^ / Wp-content / themes / diretório / para / excluir / RewriteRule wp-content / themes / (. * \ .Php) $ - [R = 404, L]
10. Configure redirecionamentos permanentes
Você pode facilmente lidar com redirecionamentos permanentes com .htaccess. Primeiro você tem que adicionar o URL antigo, então siga o novo URL que aponta para a página que você deseja redirecionar o usuário para.
# Redirecionamentos permanentes Redirecionar 301 / oldurl1 / http://yoursite.com/newurl1 Redirecionar 301 / oldurl2 / http://seusite.com/newurl2
11. Envie os visitantes para uma página de manutenção
Nós escrevemos sobre essa técnica em detalhes aqui. Você precisa de um página de manutenção separada (maintenance.html
no exemplo) para que esta regra de .htaccess funcione. Este código coloca o seu site WordPress em modo de manutenção.
# Redireciona para a página de manutençãoRewriteEngine em RewriteCond% REMOTE_ADDR! ^ 123 \ .456 \ .789 \ .000 RewriteCond% REQUEST_URI! /Maintenance.html$ [NC] Em RewriteCond% REQUEST_URI! \. (Jpe? G? | Png | gif ) [NC] RewriteRule. * /Maintenance.html [R = 503, L]
12. Restringir todo o acesso ao WP inclui
o / wp-includes /
pasta contém os arquivos principais do WordPress que são necessárias para o CMS funcionar. Não há conteúdo, plugins, temas ou qualquer outra coisa que um usuário queira acessar aqui. Então, para endurecer a segurança, é melhor restringir todo o acesso a ele.
# Bloqueia todas as pastas e arquivos wp-includesRewriteEngine Em RewriteBase / RewriteRule ^ wp-admin / inclui / - [F, L] RewriteRule! ^ Wp-inclui / - [S = 3] RewriteRule ^ wp-includes / [^ /] + \. Php $ - [F, L] RewriteRule ^ wp-inclui / js / tinymce / langs /.+ \ .php - [F, L] RegraReplica ^ wp-includes / compatível com o tema / - [F, L]
13. Bloquear scripts entre sites (XSS)
O trecho de código a seguir é do WP Mix e protege seu site contra alguns ataques XSS comuns, ou seja, injeções de script e tentativas de modificar variáveis globais e de solicitação.
# Bloqueia alguns ataques XSSRewriteCond% QUERY_STRING (\ |% 3E) [NC, OR]% RewriteCond QUERY_STRING GLOBALS (= | \ [| \% [0-9A-Z] 0,2) [OU] RewriteCond% QUERY_STRING _REQUEST (= | \ [| \% [0-9A-Z] 0,2) RewriteRule. * Index.php [F, L]
14. Ativar o cache do navegador
Como eu mencionei antes, o .htaccess não é apenas bom por razões de segurança e redirecionamentos, mas também pode ajudá-lo gerenciar o cache. O trecho de código abaixo é de Elegant Themes e torna o cache do navegador possível permitindo que os visitantes salvar certos tipos de arquivos, então da próxima vez que eles visitarem eles não terão que baixá-los novamente.
# Habilita o cache do navegadorExpiresActive Em ExpiresByType image / jpg "acesso 1 ano" Expira emByType image / jpeg "access em 1 ano" Expira emByType image / gif "em 1 ano" Expira emByType image / png "em 1 ano" Expira emByType text / css "em 1 mês" ExpiresByType application / pdf "acesso 1 mês" ExpiresByType text / x-javascript "acesso 1 mês" ExpiresByType application / x-shockwave-flash "acesso 1 mês" ExpiresByType image / x-icon "acesso 1 ano" Expira em "acesso 2 dias"
15. Configurar páginas de erro personalizadas
Você pode usar o .htaccess para configurar páginas de erro personalizadas em seu site WordPress. Para este método funcionar, você também precisa crie as páginas de erro personalizadas (custom-403.html
, custom-404.html
no exemplo) e faça o upload deles para sua pasta raiz.
Você pode configurar uma página de erro personalizada para qualquer código de status de erro HTTP (Códigos de status 4XX e 5XX) que você deseja.
# Configura páginas de erro personalizadas ErrorDocument 403 /custom-403.html ErrorDocument 404 /custom-404.html