Editar o arquivo .htaccess do seu site pode parecer intimidador para iniciantes no WordPress. Mas, de acordo com nossa experiência, essa é uma ferramenta que pode ser usada para melhorar o desempenho, a segurança e o SEO do seu site.
Você pode pensar no arquivo como um painel de controle para ajustar as configurações do servidor do seu site sem precisar ser um assistente de codificação.
Neste artigo, mostraremos alguns truques úteis do .htaccess para WordPress que lhe darão maior controle sobre sua presença on-line.
O que é o arquivo .htaccess e como editá-lo?
O arquivo .htaccess é um arquivo de configuração do servidor da Web Apache. É um arquivo de texto que permite definir regras a serem seguidas pelo servidor para o seu site WordPress.
O WordPress usa o arquivo .htaccess para gerar uma estrutura de URL amigável para SEO. No entanto, esse arquivo pode fazer muito mais do que armazenar configurações de permalink.
O arquivo .htaccess está localizado na pasta raiz do seu site WordPress. Você precisará se conectar ao seu site usando um cliente FTP ou o gerenciador de arquivos cPanel para editá-lo.
Se não conseguir encontrar seu arquivo .htaccess, consulte nosso guia sobre como localizar o arquivo .htaccess no WordPress.
Antes de editar o arquivo .htaccess, é importante fazer o download de uma cópia dele em seu computador como backup. Você pode usar esse arquivo caso algo dê errado.
Dito isso, vamos dar uma olhada em alguns truques úteis do .htaccess para WordPress que você pode experimentar:
- Protect Your WordPress Admin Area
- Password Protect WordPress Admin Folder
- Disable Directory Browsing
- Disable PHP Execution in Some WordPress Directories
- Protect Your WordPress Configuration wp-config.php File
- Setting Up 301 Redirects Through .htaccess File
- Ban Suspicious IP Addresses
- Disable Image Hotlinking in WordPress Using .htaccess
- Protect .htaccess From Unauthorized Access
- Increase File Upload Size in WordPress
- Disable Access to XML-RPC File Using .htaccess
- Blocking Author Scans in WordPress
1. Proteja sua área de administração do WordPress
Você pode usar o .htaccess para proteger sua área de administração do WordPress, limitando o acesso apenas a endereços IP selecionados.
Basta copiar e colar esse trecho de código em seu arquivo .htaccess:
AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "WordPress Admin Access Control"
AuthType Basic
<LIMIT GET>
order deny,allow
deny from all
# whitelist Syed's IP address
allow from xx.xx.xx.xxx
# whitelist David's IP address
allow from xx.xx.xx.xxx
</LIMIT>
Não se esqueça de substituir os valores xx por seu próprio endereço IP. Se você usa mais de um endereço IP para acessar a Internet, certifique-se de adicioná-los também.
Para obter instruções detalhadas, consulte nosso guia sobre como limitar o acesso ao administrador do WordPress usando .htaccess.
2. Proteger a pasta de administração do WordPress com senha
Se você acessa seu site WordPress de vários locais, incluindo pontos públicos da Internet, a limitação do acesso a endereços IP específicos pode não funcionar para você.
Você pode usar o arquivo .htaccess para adicionar uma proteção adicional por senha à sua área de administração do WordPress.
Primeiro, você precisa gerar um arquivo .htpasswds. Você pode criar um arquivo facilmente usando este gerador on-line.
Carregue esse arquivo .htpasswds fora de seu diretório da Web acessível ao público ou da pasta /public_html/
. Um bom caminho seria:
/home/user/.htpasswds/public_html/wp-admin/passwd/
Em seguida, crie um arquivo .htaccess e carregue-o no diretório /wp-admin/
e adicione o seguinte código:
AuthName "Admins Only"
AuthUserFile /home/yourdirectory/.htpasswds/public_html/wp-admin/passwd
AuthGroupFile /dev/null
AuthType basic
require user putyourusernamehere
<Files admin-ajax.php>
Order allow,deny
Allow from all
Satisfy any
</Files>
Importante: Não se esqueça de substituir o caminho do AuthUserFile
pelo caminho do seu arquivo .htpasswds e adicionar seu próprio nome de usuário.
Para obter instruções detalhadas, consulte nosso guia sobre como proteger com senha a pasta de administração do WordPress.
3. Desativar a navegação no diretório
Muitos especialistas em segurança do WordPress recomendam desativar a navegação no diretório. Com a navegação no diretório ativada, os hackers podem examinar o diretório e a estrutura de arquivos do seu site para encontrar um arquivo vulnerável.
Para desativar a navegação no diretório em seu site, é necessário adicionar a seguinte linha ao arquivo .htaccess:
Options -Indexes
Para obter mais informações sobre esse tópico, consulte nosso guia sobre como desativar a navegação em diretórios no WordPress.
4. Desativar a execução de PHP em alguns diretórios do WordPress
Às vezes, os hackers invadem um site WordPress e instalam um backdoor. Esses arquivos de backdoor geralmente são disfarçados de arquivos principais do WordPress e são colocados nas pastas /wp-includes/
ou /wp-content/uploads/
.
Uma maneira mais fácil de aumentar a segurança do WordPress é desativar a execução do PHP em alguns diretórios do WordPress.
Você precisará criar um arquivo .htaccess em branco em seu computador e colar o seguinte código nele:
<Files *.php>
deny from all
</Files>
Salve o arquivo e, em seguida, carregue-o nos diretórios /wp-content/uploads/
e /wp-includes/
.
Para obter mais informações, confira nosso tutorial sobre como desativar a execução do PHP em determinados diretórios do WordPress.
5. Proteja seu arquivo wp-config.php de configuração do WordPress
Provavelmente, o arquivo mais importante no diretório raiz do seu site WordPress é o arquivo wp-config.php. Ele contém informações sobre o banco de dados do WordPress e como se conectar a ele.
Para proteger seu arquivo wp-config.php contra acesso não autorizado, basta adicionar este código ao seu arquivo .htaccess:
<files wp-config.php>
order allow,deny
deny from all
</files>
6. Configuração de redirecionamentos 301 por meio do arquivo .htaccess
O uso de redirecionamentos 301 é a maneira mais amigável para SEO de informar aos usuários que o conteúdo foi movido para um novo local. Se quiser gerenciar adequadamente seus redirecionamentos 301 em uma base de postagem por postagem, confira nosso guia sobre como configurar redirecionamentos no WordPress.
Por outro lado, se você quiser configurar redirecionamentos rapidamente, basta colar esse código no arquivo .htaccess:
Redirect 301 /oldurl/ http://www.example.com/newurl
Redirect 301 /category/television/ http://www.example.com/category/tv/
7. Banir endereços IP suspeitos
Você está vendo solicitações excepcionalmente altas para o seu site a partir de um endereço IP específico? Você pode bloquear facilmente essas solicitações bloqueando o endereço IP em seu arquivo .htaccess.
Basta adicionar o seguinte código ao seu arquivo .htaccess:
<Limit GET POST>
order allow,deny
deny from xxx.xxx.xx.x
allow from all
</Limit>
Não se esqueça de substituir xx pelo endereço IP que você deseja bloquear.
8. Desativar hotlinking de imagens no WordPress usando .htaccess
Outros sites que fazem hotlinking direto de imagens de seu site podem tornar seu site WordPress lento e exceder seu limite de largura de banda. Isso não é um grande problema para a maioria dos sites menores. No entanto, se você administra um site popular ou um site com muitas fotos, isso pode se tornar uma preocupação séria.
Você pode impedir o hotlinking de imagens adicionando este código ao seu arquivo .htaccess:
#disable hotlinking of images with forbidden or custom image option
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?wpbeginner.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ – [NC,F,L]
Esse código só permite que as imagens sejam exibidas se a solicitação for originada de wpbeginner.com ou Google.com. Não se esqueça de substituir wpbeginner.com por seu próprio nome de domínio.
Para obter mais maneiras de proteger suas imagens, consulte nosso guia sobre maneiras de evitar o roubo de imagens no WordPress.
9. Proteger o .htaccess contra acesso não autorizado
Como você viu, há muitas coisas que podem ser feitas usando o arquivo .htaccess. Devido ao poder e ao controle que ele tem sobre o seu servidor Web, é importante protegê-lo contra o acesso não autorizado de hackers.
Basta adicionar o seguinte código ao seu arquivo .htaccess:
<files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</files>
10. Aumentar o tamanho do upload de arquivos no WordPress
Há várias maneiras de aumentar o limite de tamanho de upload de arquivos no WordPress. No entanto, para usuários de hospedagem compartilhada, alguns desses métodos não funcionam.
Um dos métodos que tem funcionado para muitos usuários é adicionar o seguinte código ao arquivo .htaccess:
php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300
php_value max_input_time 300
Esse código simplesmente diz ao seu servidor da Web para usar esses valores para aumentar o tamanho do upload de arquivos e o tempo máximo de execução no WordPress.
11. Desativar o acesso ao arquivo XML-RPC usando .htaccess
Cada instalação do WordPress vem com um arquivo chamado xmlrpc.php. Esse arquivo permite que aplicativos de terceiros se conectem ao seu site WordPress. A maioria dos especialistas em segurança do WordPress aconselha que, se você não estiver usando aplicativos de terceiros, desative esse recurso.
Há várias maneiras de fazer isso. Uma delas é adicionar o seguinte código ao seu arquivo .htaccess:
# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order deny,allow
deny from all
</Files>
Para obter mais informações, consulte nosso guia sobre como desativar o XML-RPC no WordPress.
12. Bloqueio de varreduras de autor no WordPress
Uma técnica comum usada em ataques de força bruta é executar varreduras de autor em um site WordPress e, em seguida, tentar decifrar as senhas desses nomes de usuário.
Você pode bloquear essas varreduras adicionando o seguinte código ao seu arquivo .htaccess:
# BEGIN block author scans
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} (author=\d+) [NC]
RewriteRule .* - [F]
# END block author scans
Para obter mais informações, consulte nosso artigo sobre como desencorajar ataques de força bruta bloqueando varreduras de autor no WordPress.
Esperamos que este artigo tenha ajudado você a conhecer os truques mais úteis do .htaccess para WordPress. Talvez você também queira ver nosso guia sobre como realizar uma auditoria de segurança do WordPress e nossa seleção especializada dos melhores plug-ins de proteção de conteúdo do WordPress.
Se você gostou deste artigo, inscreva-se em nosso canal do YouTube para receber tutoriais em vídeo sobre o WordPress. Você também pode nos encontrar no Twitter e no Facebook.
Simeon
Thanks so much for this. Very helpful!
WPBeginner Support
Glad it was helpful!
Administrador
Jackson Andrade
I use password protection for wp-login.php. My customers cannot logout when login.php is protected. Is there a way I can allow customers to logout without calling wp-login.php?action=logout?
Admins too can’t logout, but that’s not an issue.
Woocommerce customer’s logut url is, domain.com/account/customer-logout.
Both call wp-login.php for logout. Customers are asked for htaccess id and password. If there is a workaround, let me know. Thanks
WPBeginner Support
If your site has a login for users who are not your admins then we would not recommend password protecting your wp-login.php for the time being and we do not have a workaround at this time.
Administrador
Jackson Andrade
Thanks for that Info. Hope Wordpress adds a feature in future where it won’t redirect to login.php for logging out.
HtaccessGuy
Don’t password protect wpadmin if you use AJAX else it’l break stuff.
WPBeginner Support
If you mean for 2 in this list, we’ve added code to allow ajax to continue to work.
Administrador
Ana
This resolved my issue with above code. Thanks.
Abhi
Please Help Me.
when I paste the following code in .htaccess file it shows an error that is..
It appears you don’t have
permission to access this page.
403 Error. Forbidden.
WPBeginner Support
For resolving the 403 error, you would want to take a look at our guide here: https://www.wpbeginner.com/wp-tutorials/how-to-fix-the-403-forbidden-error-in-wordpress/
Administrador
Ben
Great article!
Do I need to do this if I already have installed WordFence plugin?
Some people don’t recommend messing with .htaccess file.
Regards.
WPBeginner Support
None of these tricks are required if you don’t want to use them, they are only helpful tools that you can use.
Administrador
Sebastian
I am not sure what does “Protect .htaccess From Unauthorized Access” mean exactly. Will I be able to access it if I make changes from point 9?
WPBeginner Support
It means if someone knows where your htaccess is located and tries to view the file by putting that address in the url, the browser will not be able to view it.
Administrador
reus
how to use wp login user name and password (registered user) to access in your no. 2 topic (Password Protect WordPress Admin Folder).
hope to to find answer here.
thank you
WPBeginner Support
If you wanted to use that, you would need to set the information in the htpasswds file
Administrador
reus
thank you for your response, how to set that information in the htpasswds? thank you
WPBeginner Support
We show the tool to use under tip 2 in the article
Selvakumaran Krishnan
Hai Syed Balkhi,
I have to open a URL which has query parameters and strings like this.
something.example.com/pagename.php?query1=string1&query2=string2&redirecturl=http%3A%2F%2Fsomething.example2.com/something&query3=string3
In the above URL, the problem is %3A%2F%2F. It shows 403 forbidden error. If I remove that part, the URL works fine.
I have searched and tried all the methods like mod rewrite, redirect, etc,. but nothing works.
Is there any way to remove (or) rewrite (or) redirect that encoded part using .htaccess file. That part is in the middle of so many parameters. There are a lot of query parameters before and after that part.
Please share your idea.
Kathrine
This is a great article!! I followed your instructions and everything works fine. I tried to open my admin site using the different IP address and it works great. Thank you for sharing your knowledge.
Mohamed Adel
When Protecting the directory to wp-admin (as explained in 2. Password Protect WordPress Admin Folder), wen I go to any page on the site the massage appears to put password.. How to fix that?
I tried from Cpanel and the same problem happens
Tony
The tip in point 4 for disabling php execution has started to cause issues with the tinymce editor in pages & posts. A php file is included in the tinymce folder that loads the relevant js files. I’ve just removed the htaccess code from the wp-include folder to stop the issue. Maybe there’s another way around this?
Pankaj
Point 5 is not working
(5. Protect Your WordPress Configuration wp-config.php File)
[05-Mar-2018 08:20:03 Etc/GMT] PHP Parse error: syntax error, unexpected ‘<' in /home/—–/public_html/xyz.com/wp-config.php on line 91
WPBeginner Support
Hi Pankaj,
The code in the 5th trick needs to be pasted in .htaccess file and not in wp-config.php file.
Administrador
Maximilian
Hi there, thank you!
Is ist possible to see the whole .htaccess somewhere? Yes, i could read: “put one line after the other” but still I am not sure.
Is then “# END WordPress° sill the last line or is it somewhere on the top then?
And what do you think about putting “Options -Indexes” on the very end?
Thank you for your answer!
WPBeginner Support
Hi Maximilian,
You can add new lines after the #END WordPress line.
Administrador
yudi cahyadi
good article..i have a question, after implementing the code in htaccess. Do I need to install a security plugin or not..??
yudi cb(beginner)
WPBeginner Support
Hi Yudi Cahyadi,
Yes, you still need to install a security plugin. Please see our WordPress security guide for more information.
Administrador
Mario von Gollaz
Hi there, nice article. Is there a way to bulk redirect?
Mario
Kevin
Hi,
Great article and just one question!
Should you place the extra code (especially speed opimisations) before or after the # BEGIN WordPress part?
Regards
Kevin
Brian Wohn
Hi, my theme developer told me this might be in the htaccess, but I don’t know why my wordpress is adding this at the end of all my pages:
Any idea why its adding the “/?v=8f2564d40946”? I’ve checked my PermaLinks, Slugs, etc and nothing there?
Thanks for your help!
WPBeginner Support
Hi Brian,
It lools like GeoLocation tag added by WooCommerce.
If you are using WooCommerce, then you can turn it off. Go to WooCommerce General Options page and uncheck option ‘Geolocate with page caching support’ option.
Administrador
Adrienne Warden
Another wonderful post from WP Beginner…Just one tip for all us newbies…While WP Beginner has some of the best tips and trick for WordPress, when it comes to protecting your site, if you are on a shared server, search “support” first. I’ve learned a lot about the backend from reading post on WP Beginner, but the truth of the matter is – I’m no backender and most shared hosting already have a fix in place for these sorts of things…I’m with InMotion and they actual have set up one click solutions for many issues that effect site security. I turned off the file Index right from CPanel…
Still WP Beginner is my go to for WordPress knowledge…You guys are awesome!
Fien
That is a nice article about htaccess. But how to implement this in one file? Can I put all lines after another?
WPBeginner Support
Hi Fien,
You can add them one after another.
Administrador
Liew CheonFong
Great list. Bookmarked!
Do you have same list for NGINX web server (which does not read .htaccess file) ?
Pattye
There is a way to ban bots from crawling your site the this file. Any suggestions in doing that, besides banning the IP?