{"id":11370,"date":"2020-06-25T20:31:42","date_gmt":"2020-06-25T23:31:42","guid":{"rendered":"https:\/\/todayhost.com.br\/site\/?p=11370"},"modified":"2020-06-25T20:45:22","modified_gmt":"2020-06-25T23:45:22","slug":"20-dicas-e-truques-extremamente-uteis-do-htaccess","status":"publish","type":"post","link":"https:\/\/todayhost.com.br\/site\/20-dicas-e-truques-extremamente-uteis-do-htaccess\/","title":{"rendered":"20 dicas e truques extremamente uteis do .htaccess"},"content":{"rendered":"\n<p>O .htaccess \u00e9, basicamente, um arquivo de configura\u00e7\u00e3o utilizado em servidores web, como o Apache, por exemplo (seu nome vem de \u201c<strong>h<\/strong>yper<strong>t<\/strong>ext <strong>access<\/strong>\u201c). O arquivo funciona a n\u00edvel de diret\u00f3rios e permite que administradores gerenciem e manipulem configura\u00e7\u00f5es e acessos de forma descentralizada.<\/p>\n<p>Inserido em modo oculto (com a devida adi\u00e7\u00e3o do\u00a0\u201c.\u201d \u00e0 frente do nome) nos diret\u00f3rios (como por exemplo a pasta raiz \u201cpublic_html\u201d de cada website), o .htaccess for\u00e7a o servidor a interpretar suas instru\u00e7\u00f5es prioritariamente, desconsiderando, portanto, nestes casos, quaisquer configura\u00e7\u00f5es globais.<\/p>\n<p>As configura\u00e7\u00f5es presentes no arquivo, vale lembrar, s\u00e3o aplicadas ao diret\u00f3rio no qual ele se encontra e tamb\u00e9m a todos os seus subdiret\u00f3rios, caso existam. Vale tamb\u00e9m lembrar que a presen\u00e7a de um outro .htaccess em um subdiret\u00f3rio anula a a\u00e7\u00e3o do que se encontra um n\u00edvel acima. Ou seja, o .htaccess do subdiret\u00f3rio passa a valer para o mesmo e tamb\u00e9m para todas as suas subpastas. E assim por diante. \u00c9 sempre bom ficarmos atentos a estes detalhes.<\/p>\n<p class=\"ez-toc-title\">Usando arquivos .htaccess, podemos, por exemplo, proteger diret\u00f3rios com senhas, prevenir <em>hotlinks<\/em> (utiliza\u00e7\u00e3o de imagens hospedadas no seu servidor em outros locais, indevidamente e gastando a sua banda), configurar URLs amig\u00e1veis, etc. Trata-se de um arquivo bastante \u00fatil, e neste artigo vamos dar a voc\u00ea uma s\u00e9rie de exemplos de utiliza\u00e7\u00e3o. 20 exemplos, para ser mais preciso.<\/p>\n<p class=\"ez-toc-title\"><strong>Conte\u00fado<\/strong>:<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_11 counter-hierarchy counter-decimal ez-toc-grey\"><nav>\n<p>Criando um arquivo .htaccess<br \/>1) Bloqueando hotlinks em imagens<br \/>2) Protegendo seu arquivo .htaccess<br \/>3) Usando p\u00e1ginas de erro personalizadas<br \/>4) Compress\u00e3o via .htaccess<br \/>5) Evitando a listagem de diret\u00f3rios<br \/>6) Controlando o acesso a arquivos e diret\u00f3rios<br \/>7) Reescrevendo URLs \u2013 Tornando-as amig\u00e1veis<br \/>8) Removendo extens\u00f5es de arquivos das URLs<br \/>9) Protegendo um diret\u00f3rio com senha<br \/>10) For\u00e7ando redirecionamento de http para https (SSL)<br \/>11) Definindo p\u00e1ginas iniciais padr\u00e3o<br \/>12) Redirecionamento 301<br \/>13) Banindo IPs<br \/>14) For\u00e7ando downloads de determinados tipos de arquivos<br \/>15) Bloqueando visitantes com base no \u201creferring domain\u201d<br \/>16) For\u00e7ando UTF-8<br \/>Protegendo a \u00e1rea administrativa do WordPress<br \/>18) Protegendo o arquivo wp-config.php do WordPress<br \/>19) Protegendo a pasta wp-content do WordPress<br \/>20) Usando o cache do navegador<br \/><br \/><\/p>\n<\/nav><\/div>\n<h2><span id=\"Criando_um_arquivo_htaccess\" class=\"ez-toc-section\"><\/span>Criando um arquivo .htaccess<\/h2>\n<p>Criar um arquivo .htaccess, ali\u00e1s, \u00e9 bastante simples. Tudo o que voc\u00ea precisa \u00e9 de um editor de texto qualquer. Pode ser o PSPad, o Notepad++ ou at\u00e9 mesmo o Bloco de Notas padr\u00e3o do Windows. Crie um novo arquivo e ent\u00e3o salve-o como \u201c<strong>.htaccess<\/strong>\u201d (sem aspas, obviamente, e com o ponto antes do nome).<\/p>\n<p>Dependendo do programa e do sistema operacional que voc\u00ea utilizar para a cria\u00e7\u00e3o do arquivo, pode acontecer de ser gerado um arquivo chamado \u201c.htaccess.txt\u201d. Isto est\u00e1 errado, claro, mas \u00e9 f\u00e1cil consertarmos o \u201cerro\u201d: basta renomear o tal arquivo, removendo dele os caracteres desnecess\u00e1rios (no caso, \u201c<strong>.txt<\/strong>\u201c).<\/p>\n<p>E agora vamos \u00e0s dicas de utiliza\u00e7\u00e3o, lembrando antes que v\u00e1rias delas exigem a utiliza\u00e7\u00e3o do m\u00f3dulo \u201cmod_rewrite\u201d no servidor. Verifique antes de tudo se ele se encontra habilitado no Apache.<\/p>\n<h2><span id=\"1)_Bloqueando_hotlinks_em_imagens\" class=\"ez-toc-section\"><\/span>1) Bloqueando hotlinks em imagens<\/h2>\n<p>Para evitar que outros utilizem imagens hospedadas em seu servidor, \u201clinkando\u201d diretamente e assim gastando a sua banda, use o seguinte c\u00f3digo em seu .htaccess:<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\" value=\"1\"><span class=\"typ\">RewriteEngine<\/span><span class=\"pln\"> on<\/span><\/li>\n<li class=\"L1\"><span class=\"typ\">RewriteCond<\/span> <span class=\"pun\">%{<\/span><span class=\"pln\">HTTP_REFERER<\/span><span class=\"pun\">}<\/span> <span class=\"pun\">!^<\/span><span class=\"pln\">$<\/span><\/li>\n<li class=\"L2\"><span class=\"typ\">RewriteCond<\/span> <span class=\"pun\">%{<\/span><span class=\"pln\">HTTP_REFERER<\/span><span class=\"pun\">}<\/span> <span class=\"pun\">!^<\/span><span class=\"pln\">http<\/span><span class=\"pun\">(<\/span><span class=\"pln\">s<\/span><span class=\"pun\">)?:<\/span><span class=\"com\">\/\/(www\\.)?meusite.com [NC]<\/span><\/li>\n<li class=\"L3\"><span class=\"typ\">RewriteRule<\/span><span class=\"pln\"> \\.<\/span><span class=\"pun\">(<\/span><span class=\"pln\">jpg<\/span><span class=\"pun\">|<\/span><span class=\"pln\">jpeg<\/span><span class=\"pun\">|<\/span><span class=\"pln\">png<\/span><span class=\"pun\">|<\/span><span class=\"pln\">gif<\/span><span class=\"pun\">)<\/span><span class=\"pln\">$ <\/span><span class=\"pun\">\u2013<\/span> <span class=\"pun\">[<\/span><span class=\"pln\">NC<\/span><span class=\"pun\">,<\/span><span class=\"pln\">F<\/span><span class=\"pun\">,<\/span><span class=\"pln\">L<\/span><span class=\"pun\">]<\/span><\/li>\n<\/ol>\n<p>Ao usar o c\u00f3digo acima, qualquer site que tentar utilizar suas imagens ser\u00e1 impedido de o fazer. N\u00e3o se esque\u00e7a de substituir \u201c<a class=\"vglnk\" href=\"http:\/\/meusite.com\" rel=\"nofollow\">meusite.com<\/a>\u201d com a URL e a TLD corretas. Por exemplo: \u201ccodigofonte.com.br\/\u201d , \u201cmeublog.net\/\u201d, etc.<\/p>\n<p>Repare tamb\u00e9m que o c\u00f3digo acima previne <em>hotlinks<\/em> em imagens com as extens\u00f5es .jpg , .jpeg , .png e .gif . Voc\u00ea pode alterar tamb\u00e9m esta linha do c\u00f3digo, adicionando novos tipos de arquivos, removendo, etc. Apenas lembre-se de respeitar a sintaxe.<\/p>\n<p>Caso voc\u00ea deseje for\u00e7ar a exibi\u00e7\u00e3o de uma outra imagem no site \u201cladr\u00e3o de imagens\u201d, como por exemplo uma imagem contendo um alerta, com a sua URL, adicione a linha abaixo ao final do arquivo, logo abaixo de \u201cRewriteRule \\.(jpg|jpeg|png|gif)$ \u2013 [NC,F,L]\u201c:<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\" value=\"1\"><span class=\"typ\">RewriteRule<\/span> <span class=\"pun\">.*<\/span><span class=\"pln\">\\.<\/span><span class=\"pun\">(<\/span><span class=\"pln\">jpg<\/span><span class=\"pun\">|<\/span><span class=\"pln\">jpeg<\/span><span class=\"pun\">|<\/span><span class=\"pln\">png<\/span><span class=\"pun\">|<\/span><span class=\"pln\">gif<\/span><span class=\"pun\">)<\/span><span class=\"pln\">$ <\/span><span class=\"pun\">\/<\/span><span class=\"pln\">imagens<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">imagemalerta<\/span><span class=\"pun\">.<\/span><span class=\"pln\">jpg <\/span><span class=\"pun\">[<\/span><span class=\"pln\">L<\/span><span class=\"pun\">]<\/span><\/li>\n<\/ol>\n<p>Lembre-se de que neste caso a imagem \u201cimagemalerta.jpg\u201d dever\u00e1 existir dentro do diret\u00f3rio \u201c\/imagens\/\u201d, em seu servidor web.<\/p>\n<p>Se ao inv\u00e9s de exibir uma outra imagem voc\u00ea desejar exibir simplesmente um erro 403 (Forbidden), utilize o c\u00f3digo abaixo no lugar:<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\" value=\"1\"><span class=\"typ\">RewriteRule<\/span> <span class=\"pun\">.*<\/span><span class=\"pln\">\\.<\/span><span class=\"pun\">(<\/span><span class=\"pln\">jpg<\/span><span class=\"pun\">|<\/span><span class=\"pln\">jpeg<\/span><span class=\"pun\">|<\/span><span class=\"pln\">png<\/span><span class=\"pun\">|<\/span><span class=\"pln\">gif<\/span><span class=\"pun\">)<\/span><span class=\"pln\">$ <\/span><span class=\"pun\">\u2013<\/span> <span class=\"pun\">[<\/span><span class=\"pln\">F<\/span><span class=\"pun\">]<\/span><\/li>\n<\/ol>\n<h2><span id=\"2)_Protegendo_seu_arquivo_htaccess\" class=\"ez-toc-section\"><\/span>2) Protegendo seu arquivo .htaccess<\/h2>\n<p>Seguro morreu de velho, n\u00e3o \u00e9? Portanto, por que n\u00e3o proteger o arquivo .htaccess? Basta adicionar o seguinte c\u00f3digo a ele mesmo:<\/p>\n<p><code>&lt;files ~ \"^.*\\.([Hh][Tt][Aa])\"&gt;<br \/>\norder allow,deny<br \/>\ndeny from all<br \/>\nsatisfy all<br \/>\n&lt;\/files&gt;<\/code><\/p>\n<p>\u00a0<\/p>\n<h2><span id=\"3)_Usando_paginas_de_erro_personalizadas\" class=\"ez-toc-section\"><\/span>3) Usando p\u00e1ginas de erro personalizadas<\/h2>\n<p>Para evitar que os visitantes caiam em p\u00e1ginas de erro padr\u00e3o do Apache ou ent\u00e3o nas famosas \u201c404 Not Found\u201d padr\u00e3o, por exemplo (caso tentem acessar uma URL inexistente), voc\u00ea pode adicionar a seguinte linha ao seu .htaccess:<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\" value=\"1\"><span class=\"typ\">ErrorDocument<\/span> <span class=\"lit\">404<\/span> <span class=\"pun\">\/<\/span><span class=\"pln\">erros<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">notfound<\/span><span class=\"pun\">.<\/span><span class=\"pln\">html<\/span><\/li>\n<\/ol>\n<p>Observe que a p\u00e1gina \u201cnotfound.html\u201d deve existir dentro do diret\u00f3rio \u201c\/erros\/\u201d. Voc\u00ea pode personaliz\u00e1-la como bem entender, adicionando links para sua p\u00e1gina principal, formul\u00e1rio de contato, etc.<\/p>\n<p>Para cobrir outros tipos de erro, utilize tamb\u00e9m os c\u00f3digos abaixo:<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\" value=\"1\"><span class=\"typ\">ErrorDocument<\/span> <span class=\"lit\">400<\/span> <span class=\"pun\">\/<\/span><span class=\"pln\">erros<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">badrequest<\/span><span class=\"pun\">.<\/span><span class=\"pln\">html<\/span><\/li>\n<li class=\"L1\"><span class=\"typ\">ErrorDocument<\/span> <span class=\"lit\">401<\/span> <span class=\"pun\">\/<\/span><span class=\"pln\">erros<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">authreqd<\/span><span class=\"pun\">.<\/span><span class=\"pln\">html<\/span><\/li>\n<li class=\"L2\"><span class=\"typ\">ErrorDocument<\/span> <span class=\"lit\">403<\/span> <span class=\"pun\">\/<\/span><span class=\"pln\">erros<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">forbid<\/span><span class=\"pun\">.<\/span><span class=\"pln\">html<\/span><\/li>\n<li class=\"L3\"><span class=\"typ\">ErrorDocument<\/span> <span class=\"lit\">500<\/span> <span class=\"pun\">\/<\/span><span class=\"pln\">erros<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">serverr<\/span><span class=\"pun\">.<\/span><span class=\"pln\">html<\/span><\/li>\n<\/ol>\n<p>Da mesma maneira, n\u00e3o se esque\u00e7a de criar as p\u00e1ginas necess\u00e1rias e envi\u00e1-las para o diret\u00f3rio \u201c\/erros\/\u201d, conforme explicado acima.<\/p>\n<h2><span id=\"4)_Compressao_via_htaccess\" class=\"ez-toc-section\"><\/span>4) Compress\u00e3o via .htaccess<\/h2>\n<p>Caso voc\u00ea deseje utilizar compress\u00e3o GZIP no servidor, para economizar banda, para \u201cdeixar os motores de busca mais felizes\u201d, etc, insira o c\u00f3digo abaixo em seu .htaccess, lembrando que para que ele funcione, o m\u00f3dulo mod_gzip deve estar habilitado no Apache:<\/p>\n<p><code>&lt;ifmodule mod_gzip.c=\"\"&gt;<br \/>\nmod_gzip_on\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Yes<br \/>\nmod_gzip_dechunk\u00a0 Yes<br \/>\nmod_gzip_item_include file\u00a0\u00a0\u00a0\u00a0\u00a0 \\.(html?|css|js|php|pl)$<br \/>\nmod_gzip_item_include handler\u00a0\u00a0 ^cgi-script$<br \/>\nmod_gzip_item_include mime\u00a0\u00a0\u00a0\u00a0\u00a0 ^text\/.*<br \/>\nmod_gzip_item_include mime\u00a0\u00a0\u00a0\u00a0\u00a0 ^application\/x-javascript.*<br \/>\nmod_gzip_item_exclude mime\u00a0\u00a0\u00a0\u00a0\u00a0 ^image\/.*<br \/>\nmod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*<br \/>\n&lt;\/ifmodule&gt;<br \/>\n<\/code><\/p>\n<p>J\u00e1 para utilizar a compress\u00e3o com o mod_deflate (n\u00e3o se esque\u00e7a de que este m\u00f3dulo deve estar habilitado no Apache), utilize o c\u00f3digo abaixo:<\/p>\n<p><code>&lt;ifmodule mod_deflate.c=\"\"&gt;<br \/>\n&lt;filesmatch .(.jpg|.gif|.png|js|phpcss)$=\"\"&gt;<br \/>\nSetOutputFilter DEFLATE<br \/>\n&lt;\/filesmatch&gt;<br \/>\n&lt;\/ifmodule&gt;<br \/>\n<\/code><\/p>\n<h2><span id=\"5)_Evitando_a_listagem_de_diretorios\" class=\"ez-toc-section\"><\/span>5) Evitando a listagem de diret\u00f3rios<\/h2>\n<p>Voc\u00ea pode tamb\u00e9m utilizar o .htaccess para evitar a listagem de diret\u00f3rios. Para evitar que o conte\u00fado de um diret\u00f3rio seja exibido quando algum usu\u00e1rio o acessar (por exemplo, quando algu\u00e9m acessa \u201c<a class=\"vglnk\" href=\"http:\/\/www.seusite.com.br\/nomedapasta\u201d\" rel=\"nofollow\">www.seusite.com.br\/nomedapasta\u201d<\/a> ou \u201c<a class=\"vglnk\" href=\"http:\/\/www.seusite.com.br\/imagens\u201d\" rel=\"nofollow\">www.seusite.com.br\/imagens\u201d<\/a>.<\/p>\n<p>Use o <em>snippet<\/em> abaixo:<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\" value=\"1\"><span class=\"typ\">Options<\/span> <span class=\"pun\">\u2013<\/span><span class=\"typ\">Indexes<\/span><\/li>\n<\/ol>\n<h2><span id=\"6)_Controlando_o_acesso_a_arquivos_e_diretorios\" class=\"ez-toc-section\"><\/span>6) Controlando o acesso a arquivos e diret\u00f3rios<\/h2>\n<p>Digamos que voc\u00ea deseja evitar que terceiros acessem determinados arquivos e pastas em seu site. Voc\u00ea possui um <em>script<\/em> qualquer instalado, por exemplo, e deseja evitar que visitantes acessem sua pasta \u201cincludes\u201d.<\/p>\n<p>Por outro lado, voc\u00ea precisa garantir que qualquer p\u00e1gina do site em quest\u00e3o possa \u201cchamar\u201d sem problemas os arquivos contidos nesta pasta. Basta, ent\u00e3o, adicionar um .htaccess com o seguinte conte\u00fado na tal pasta, no caso, a \u201cincludes\u201d:<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\" value=\"1\"><span class=\"com\"># Acesso restrito!<\/span><\/li>\n<li class=\"L1\"><span class=\"pln\">deny <\/span><span class=\"kwd\">from<\/span><span class=\"pln\"> all<\/span><\/li>\n<\/ol>\n<p>Voc\u00ea pode tamb\u00e9m limitar o acesso apenas a uma determinada faixa de IPs:<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\" value=\"1\"><span class=\"com\"># Acesso restrito!<\/span><\/li>\n<li class=\"L1\"><span class=\"pln\">order deny<\/span><span class=\"pun\">,<\/span><span class=\"pln\">allow<\/span><\/li>\n<li class=\"L2\"><span class=\"pln\">deny <\/span><span class=\"kwd\">from<\/span><span class=\"pln\"> all<\/span><\/li>\n<li class=\"L3\"><span class=\"pln\">allow <\/span><span class=\"kwd\">from<\/span> <span class=\"lit\">192.168<\/span><span class=\"pun\">.<\/span><span class=\"lit\">0.1<\/span><span class=\"pun\">\/<\/span><span class=\"lit\">24<\/span><\/li>\n<\/ol>\n<p>N\u00e3o se esque\u00e7a de alterar a faixa de IPs conforme sua necessidade.<\/p>\n<p>E voc\u00ea pode tamb\u00e9m banir um determinado IP. Algum <em>crawler<\/em> insistente, por exemplo, que esteja sobrecarregando o sistema, ou ent\u00e3o algum IP que voc\u00ea j\u00e1 sabe ser indesejado. Utilize o c\u00f3digo abaixo:<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\" value=\"1\"><span class=\"com\"># Proibido\u2026<\/span><\/li>\n<li class=\"L1\"><span class=\"pln\">order allow<\/span><span class=\"pun\">,<\/span><span class=\"pln\">deny<\/span><\/li>\n<li class=\"L2\"><span class=\"pln\">deny <\/span><span class=\"kwd\">from<\/span> <span class=\"lit\">74.184<\/span><span class=\"pun\">.<\/span><span class=\"lit\">25.218<\/span><\/li>\n<li class=\"L3\"><span class=\"pln\">allow <\/span><span class=\"kwd\">from<\/span><span class=\"pln\"> all<\/span><\/li>\n<\/ol>\n<p>Altere o IP conforme sua necessidade.<\/p>\n<h2><span id=\"7)_Reescrevendo_URLs_%E2%80%93_Tornandoas_amigaveis\" class=\"ez-toc-section\"><\/span>7) Reescrevendo URLs \u2013 Tornando-as amig\u00e1veis<\/h2>\n<p>Com .htaccess, tamb\u00e9m podemos reescrever URLs. Podemos torn\u00e1-las mais amig\u00e1veis, tanto para os motores de busca quanto para os visitantes. Digamos que voc\u00ea possua uma loja virtual e nela venda diversos produtos. Digamos, agora, que suas URLs possuem a seguinte estrutura:<\/p>\n<ul>\n<li><a class=\"vglnk\" href=\"http:\/\/www.meusite.com\/produto.php?id=12\" rel=\"nofollow\">http:\/\/www.meusite.com\/produto.php?id=12<\/a><\/li>\n<\/ul>\n<p>Ora, \u00e9 muito mais f\u00e1cil, simples e amig\u00e1vel trabalhar com a estrutura do exemplo abaixo:<\/p>\n<ul>\n<li><a class=\"vglnk\" href=\"http:\/\/www.meusite.com\/produto-12.html\" rel=\"nofollow\">http:\/\/www.meusite.com\/produto-12.html<\/a><\/li>\n<\/ul>\n<p><strong>Confira os exemplos abaixo e utilize os que se adequarem \u00e0s suas necessidades, lembrando sempre de realizar as altera\u00e7\u00f5es nas URLs, nos caminhos, etc:<\/strong><\/p>\n<p>Reescrevendo produto.php?id=12 para produto-12.html:<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\" value=\"1\"><span class=\"typ\">RewriteEngine<\/span><span class=\"pln\"> on<\/span><\/li>\n<li class=\"L1\"><span class=\"typ\">RewriteRule<\/span> <span class=\"pun\">^<\/span><span class=\"pln\">produto<\/span><span class=\"pun\">-([<\/span><span class=\"lit\">0<\/span><span class=\"pun\">\u2013<\/span><span class=\"lit\">9<\/span><span class=\"pun\">]+)<\/span><span class=\"pln\">\\.html$ produto<\/span><span class=\"pun\">.<\/span><span class=\"pln\">php<\/span><span class=\"pun\">?<\/span><span class=\"pln\">id<\/span><span class=\"pun\">=<\/span><span class=\"pln\">$1<\/span><\/li>\n<\/ol>\n<p>Reescrevendo produto.php?id=12 para produto\/hub-usb\/12.html:<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\" value=\"1\"><span class=\"typ\">RewriteEngine<\/span><span class=\"pln\"> on<\/span><\/li>\n<li class=\"L1\"><span class=\"typ\">RewriteRule<\/span> <span class=\"pun\">^<\/span><span class=\"pln\">produto<\/span><span class=\"pun\">\/([<\/span><span class=\"pln\">a<\/span><span class=\"pun\">\u2013<\/span><span class=\"pln\">zA<\/span><span class=\"pun\">\u2013<\/span><span class=\"pln\">Z0<\/span><span class=\"pun\">\u2013<\/span><span class=\"lit\">9<\/span><span class=\"pln\">_<\/span><span class=\"pun\">-]+)\/([<\/span><span class=\"lit\">0<\/span><span class=\"pun\">\u2013<\/span><span class=\"lit\">9<\/span><span class=\"pun\">]+)<\/span><span class=\"pln\">\\.html$ produto<\/span><span class=\"pun\">.<\/span><span class=\"pln\">php<\/span><span class=\"pun\">?<\/span><span class=\"pln\">id<\/span><span class=\"pun\">=<\/span><span class=\"pln\">$2<\/span><\/li>\n<\/ol>\n<p>Redirecionando URLs sem www para URLs com www:<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\" value=\"1\"><span class=\"typ\">RewriteEngine<\/span> <span class=\"typ\">On<\/span><\/li>\n<li class=\"L1\"><span class=\"typ\">RewriteCond<\/span> <span class=\"pun\">%{<\/span><span class=\"pln\">HTTP_HOST<\/span><span class=\"pun\">}<\/span> <span class=\"pun\">^<\/span><span class=\"pln\">seudominio<\/span><span class=\"pun\">.<\/span><span class=\"pln\">com<\/span><\/li>\n<li class=\"L2\"><span class=\"typ\">RewriteRule<\/span> <span class=\"pun\">^<\/span><span class=\"pln\"> http<\/span><span class=\"pun\">:<\/span><span class=\"com\">\/\/<a class=\"vglnk\" href=\"http:\/\/www.seudominio.com%{REQUEST_URI\" rel=\"nofollow\">www.seudominio.com%{REQUEST_URI<\/a>} [L,R=301]<\/span><\/li>\n<\/ol>\n<p>Redirecionando URLs com www para URLs sem www:<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\" value=\"1\"><span class=\"typ\">RewriteEngine<\/span> <span class=\"typ\">On<\/span><\/li>\n<li class=\"L1\"><span class=\"typ\">RewriteCond<\/span> <span class=\"pun\">%{<\/span><span class=\"pln\">HTTP_HOST<\/span><span class=\"pun\">}<\/span> <span class=\"pun\">^<\/span><span class=\"pln\">www<\/span><span class=\"pun\">.(.*)<\/span> <span class=\"pun\">[<\/span><span class=\"pln\">NC<\/span><span class=\"pun\">]<\/span><\/li>\n<li class=\"L2\"><span class=\"typ\">RewriteRule<\/span> <span class=\"pun\">^(.*)<\/span><span class=\"pln\"> http<\/span><span class=\"pun\">:<\/span><span class=\"com\">\/\/%1\/$1 [R=301,L]<\/span><\/li>\n<\/ol>\n<h2><span id=\"8)_Removendo_extensoes_de_arquivos_das_URLs\" class=\"ez-toc-section\"><\/span>8) Removendo extens\u00f5es de arquivos das URLs<\/h2>\n<p>Voc\u00ea pode tamb\u00e9m remover as extens\u00f5es dos arquivos das URLs com um arquivo .htaccess. Por exemplo, ao inv\u00e9s de seu visitante visualizar algo como contato.php na barra de endere\u00e7os do navegador, ele pode visualizar simplesmente \u201ccontato\u201d.<\/p>\n<p>Use o c\u00f3digo abaixo em um arquivo .htaccess:<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\" value=\"1\"><span class=\"typ\">RewriteEngine<\/span><span class=\"pln\"> on<\/span><\/li>\n<li class=\"L1\"><span class=\"typ\">RewriteCond<\/span> <span class=\"pun\">%{<\/span><span class=\"pln\">REQUEST_FILENAME<\/span><span class=\"pun\">}<\/span> <span class=\"pun\">!-<\/span><span class=\"pln\">d<\/span><\/li>\n<li class=\"L2\"><span class=\"typ\">RewriteCond<\/span> <span class=\"pun\">%{<\/span><span class=\"pln\">REQUEST_FILENAME<\/span><span class=\"pun\">}<\/span><span class=\"pln\">\\.html <\/span><span class=\"pun\">\u2013<\/span><span class=\"pln\">f<\/span><\/li>\n<li class=\"L3\"><span class=\"typ\">RewriteRule<\/span> <span class=\"pun\">^(.*)<\/span><span class=\"pln\">$ $1<\/span><span class=\"pun\">.<\/span><span class=\"pln\">html<\/span><\/li>\n<\/ol>\n<p>No exemplo acima, a extens\u00e3o .html ser\u00e1 removida\/escondida. Voc\u00ea pode tamb\u00e9m usar o mesmo <em>snippet<\/em> para esconder outras extens\u00f5es de arquivos, como por exemplo .php . Basta realizar as devidas substitui\u00e7\u00f5es.<\/p>\n<p>\u00a0<\/p>\n<h2><span id=\"9)_Protegendo_um_diretorio_com_senha\" class=\"ez-toc-section\"><\/span>9) Protegendo um diret\u00f3rio com senha<\/h2>\n<p>Uma das funcionalidades mais usadas e bacanas do .htaccess: proteger um diret\u00f3rio qualquer com senha. Para acessar o diret\u00f3rio em quest\u00e3o (e, consequentemente, tudo o que estiver dentro dele), o visitante dever\u00e1 informar um \u201cusu\u00e1rio\u201d e uma \u201csenha\u201d.<\/p>\n<p>Observe que aqui deveremos utilizar dois arquivos: o .htaccess e o arquivo que conter\u00e1 as senhas, o .htpasswd . O .htaccess voc\u00ea j\u00e1 sabe como criar, e para criar o arquivo das senhas, o .htpasswd , utilize este gerador online (isto porque as senhas devem ser transformadas em <em>hashs<\/em> MD5<strong>).<\/strong><\/p>\n<p>No site \u201cHtpasswd Generator\u201d, informe o \u201cusu\u00e1rio\u201d (username) e a \u201csenha\u201d (password). Em seguida clique no bot\u00e3o \u201cCreate .htpasswd file\u201d. Repita o processo quantas vezes forem necess\u00e1rias para transformar todas as senhas desejadas em <em>hashs<\/em> MD5.<\/p>\n<p>O gerador fornece o resultado logo em seguida, e \u00e9 isto que voc\u00ea deve copiar e colar no arquivo .htpasswd (um conjunto de usu\u00e1rio e senha por linha). Cada conjunto de \u201cusu\u00e1rio\u201d e \u201csenha\u201d \u00e9 mais ou menos igual ao exemplo abaixo:<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\" value=\"1\"><span class=\"pln\">teste<\/span><span class=\"pun\">:<\/span><span class=\"pln\">$apr1$7KeyxOFe$sEEZhgvhSMKkHQTbXkqjs0<\/span><\/li>\n<\/ol>\n<p>Este procedimento tamb\u00e9m pode ser realizado atrav\u00e9s do SSH, vale lembrar. Use o comando abaixo no <em>prompt<\/em> ap\u00f3s se conectar ao servidor:<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\" value=\"1\"><span class=\"pln\">htpasswd <\/span><span class=\"pun\">\u2013<\/span><span class=\"pln\">c <\/span><span class=\"pun\">\/<\/span><span class=\"pln\">home<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">usuario<\/span><span class=\"pun\">\/.<\/span><span class=\"pln\">htpasswd nomedousuario<\/span><\/li>\n<\/ol>\n<p>Onde \u201c\/home\/usuario\/\u201d \u00e9 o diret\u00f3rio onde o arquivo ser\u00e1 gerado, e \u201cnomedousuario\u201d \u00e9, bem, o nome do usu\u00e1rio. Durante este procedimento voc\u00ea ser\u00e1 solicitado a informar uma senha para o usu\u00e1rio em quest\u00e3o.<\/p>\n<p>Para adicionar novos usu\u00e1rios (lembrando que voc\u00ea sempre ser\u00e1 solicitado a informar as respectivas senhas), use o comando abaixo:<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\" value=\"1\"><span class=\"pln\">htpasswd <\/span><span class=\"pun\">\/<\/span><span class=\"pln\">home<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">usuario<\/span><span class=\"pun\">\/.<\/span><span class=\"pln\">htpasswd nomedousuario2<\/span><\/li>\n<\/ol>\n<p>Observe que nos comandos acima, o par\u00e2metro \u201c-c\u201d foi utilizado para criar o arquivo .htpasswd j\u00e1 com um usu\u00e1rio. J\u00e1 no segundo comando o par\u00e2metro n\u00e3o \u00e9 necess\u00e1rio, pois estamos adicionando um novo usu\u00e1rio (nomedousuario2) a um arquivo .htpasswd j\u00e1 existente. E assim por diante.<\/p>\n<p>Mas, continuando, ap\u00f3s a cria\u00e7\u00e3o do .htpasswd, envie-o para um diret\u00f3rio acima de sua pasta raiz. Por exemplo, um n\u00edvel acima de sua pasta \u201cpublic_html\u201d (\/home\/usuario\/\u201d, digamos).<\/p>\n<p>Vamos agora \u00e0 cria\u00e7\u00e3o do .htaccess para a prote\u00e7\u00e3o do diret\u00f3rio, ressaltando que este arquivo deve ser enviado para a pasta que vai ser protegida:<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\" value=\"1\"><span class=\"typ\">AuthType<\/span> <span class=\"typ\">Basic<\/span><\/li>\n<li class=\"L1\"><span class=\"typ\">AuthName<\/span> <span class=\"str\">\u201cAcesso Restrito!\u201d<\/span><\/li>\n<li class=\"L2\"><span class=\"typ\">AuthUserFile<\/span> <span class=\"pun\">\/<\/span><span class=\"pln\">home<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">usuario<\/span><span class=\"pun\">\/.<\/span><span class=\"pln\">htpasswd<\/span><\/li>\n<li class=\"L3\"><span class=\"typ\">Require<\/span><span class=\"pln\"> valid<\/span><span class=\"pun\">\u2013<\/span><span class=\"pln\">user<\/span><\/li>\n<\/ol>\n<p>Observe o seguinte:<\/p>\n<ul>\n<li>AuthName: \u00e9 uma mensagem que pode ser customizada conforme voc\u00ea desejar. Esta mensagem aparecer\u00e1 na janela na qual ser\u00e3o soliciados os dados de login;<\/li>\n<li>AuthUserFile: caminho absoluto para o arquivo .htpasswd;<\/li>\n<\/ul>\n<p>Pronto. Seu diret\u00f3rio foi protegido com senha. Lembre-se de realizar as altera\u00e7\u00f5es necess\u00e1rias relativas aos caminhos, nomes de pastas, usu\u00e1rios, senhas, etc.<\/p>\n<p>\u00a0<\/p>\n<h2><span id=\"10)_Forcando_redirecionamento_de_http_para_https_(SSL)\" class=\"ez-toc-section\"><\/span>10) For\u00e7ando redirecionamento de http para https (SSL)<\/h2>\n<ol class=\"linenums\">\n<li class=\"L0\" value=\"1\"><span class=\"typ\">RewriteEngine<\/span> <span class=\"typ\">On<\/span><\/li>\n<li class=\"L1\"><span class=\"typ\">RewriteCond<\/span> <span class=\"pun\">%{<\/span><span class=\"pln\">HTTPS<\/span><span class=\"pun\">}<\/span> <span class=\"pun\">!<\/span><span class=\"pln\">on<\/span><\/li>\n<li class=\"L2\"><span class=\"typ\">RewriteRule<\/span> <span class=\"pun\">(.*)<\/span><span class=\"pln\"> https<\/span><span class=\"pun\">:<\/span><span class=\"com\">\/\/%{HTTP_HOST}%{REQUEST_URI}<\/span><\/li>\n<\/ol>\n<h2><span id=\"11)_Definindo_paginas_iniciais_padrao\" class=\"ez-toc-section\"><\/span>11) Definindo p\u00e1ginas iniciais padr\u00e3o<\/h2>\n<p>Voc\u00ea pode tamb\u00e9m definir no .htaccess quais p\u00e1ginas iniciais ser\u00e3o consideradas como p\u00e1ginas padr\u00e3o\/<em>default<\/em>, como p\u00e1ginas de \u00edndice (index):<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\" value=\"1\"><span class=\"typ\">DirectoryIndex<\/span><span class=\"pln\"> index<\/span><span class=\"pun\">.<\/span><span class=\"pln\">html index<\/span><span class=\"pun\">.<\/span><span class=\"pln\">php index<\/span><span class=\"pun\">.<\/span><span class=\"pln\">html<\/span><\/li>\n<\/ol>\n<p>No exemplo acima, os arquivos index.htm, index.php e index.html ser\u00e3o considerados como p\u00e1ginas de \u00edndice.<\/p>\n<p>Por outro lado, caso voc\u00ea deseje ter outro arquivo que n\u00e3o um index.html (ou qualquer outro index) como p\u00e1gina inicial, basta utilizar um .htaccess da seguinte forma:<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\" value=\"1\"><span class=\"typ\">DirectoryIndex<\/span><span class=\"pln\"> empresa<\/span><span class=\"pun\">.<\/span><span class=\"pln\">html<\/span><\/li>\n<\/ol>\n<p>No exemplo acima, sua p\u00e1gina inicial ser\u00e1 o arquivo \u201cempresa.html\u201d. Sempre que um visitante acessar o seu dom\u00ednio, por exemplo, \u201c<a class=\"vglnk\" href=\"http:\/\/www.seusite.com.br\u201d\" rel=\"nofollow\">www.seusite.com.br\u201d<\/a>, ele ser\u00e1 automaticamente redirecionado para \u201c<a class=\"vglnk\" href=\"http:\/\/www.seusite.com.br\/empresa.html\u201d\" rel=\"nofollow\">www.seusite.com.br\/empresa.html\u201d<\/a>.<\/p>\n<h2><span id=\"12)_Redirecionamento_301\" class=\"ez-toc-section\"><\/span>12) Redirecionamento 301<\/h2>\n<p>Se voc\u00ea precisar mudar seu dom\u00ednio este c\u00f3digo \u00e9 bastante \u00fatil. Com ele, voc\u00ea n\u00e3o perder\u00e1 links internos e externos, visitantes, e tamb\u00e9m n\u00e3o ter\u00e1 problemas com os motores de busca.<\/p>\n<p>Para redirecionar permanentemente (e tamb\u00e9m dizer aos motores de busca que trata-se de uma mudan\u00e7a permanente) um dom\u00ednio inteiro para outro (um novo, por exemplo), utilize no antigo um .htaccess com o c\u00f3digo abaixo:<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\" value=\"1\"><span class=\"typ\">Options<\/span> <span class=\"pun\">+<\/span><span class=\"typ\">FollowSymLinks<\/span><\/li>\n<li class=\"L1\"><span class=\"typ\">RewriteEngine<\/span><span class=\"pln\"> on<\/span><\/li>\n<li class=\"L2\"><span class=\"typ\">RewriteRule<\/span> <span class=\"pun\">(.*)<\/span><span class=\"pln\"> http<\/span><span class=\"pun\">:<\/span><span class=\"com\">\/\/<a class=\"vglnk\" href=\"http:\/\/www.seunovosite.com\/$1\" rel=\"nofollow\">www.seunovosite.com\/$1<\/a> [R=301,L]<\/span><\/li>\n<\/ol>\n<p>N\u00e3o se esque\u00e7a de alterar \u201c<a class=\"vglnk\" href=\"http:\/\/seunovosite.com\" rel=\"nofollow\">seunovosite.com<\/a>\u201d de acordo.<\/p>\n<p>\u00a0<\/p>\n<h2><span id=\"13)_Banindo_IPs\" class=\"ez-toc-section\"><\/span>13) Banindo IPs<\/h2>\n<p>Digamos que voc\u00ea sofra ataques do tipo <em>brute force<\/em>, ou tenha problemas com <em>spammers<\/em>. Vamos imaginar qualquer situa\u00e7\u00e3o problem\u00e1tica para seu site e\/ou servidor, na qual voc\u00ea j\u00e1 tenha identificado os IPs problem\u00e1ticos. \u00c9 muito simples bloque\u00e1-los atrav\u00e9s do .htaccess:<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\" value=\"1\"><span class=\"pln\">allow <\/span><span class=\"kwd\">from<\/span><span class=\"pln\"> all<\/span><\/li>\n<li class=\"L1\"><span class=\"pln\">deny <\/span><span class=\"kwd\">from<\/span> <span class=\"lit\">200.143<\/span><span class=\"pun\">.<\/span><span class=\"lit\">89.154<\/span><\/li>\n<li class=\"L2\"><span class=\"pln\">deny <\/span><span class=\"kwd\">from<\/span> <span class=\"lit\">67.122<\/span><span class=\"pun\">.<\/span><span class=\"lit\">145.60<\/span><\/li>\n<li class=\"L3\"><span class=\"pln\">deny <\/span><span class=\"kwd\">from<\/span> <span class=\"lit\">74.14<\/span><span class=\"pun\">.<\/span><span class=\"lit\">13.246<\/span><\/li>\n<li class=\"L4\"><span class=\"pln\">deny <\/span><span class=\"kwd\">from<\/span> <span class=\"lit\">67.224<\/span><span class=\"pun\">.<\/span><span class=\"lit\">175.26<\/span><\/li>\n<\/ol>\n<p>Observe que os IPs informados acima foram inseridos apenas a t\u00edtulo de exemplo. Altere conforme sua necessidade. Caso seja necess\u00e1rio informar (bloqueando, assim) mais IPs, basta adicionar novas linhas \u201cdeny from\u201d, seguidas do IP. E assim por diante.<\/p>\n<h2><span id=\"14)_Forcando_downloads_de_determinados_tipos_de_arquivos\" class=\"ez-toc-section\"><\/span>14) For\u00e7ando downloads de determinados tipos de arquivos<\/h2>\n<p>Dependendo do arquivo e das configura\u00e7\u00f5es do servidor, este \u00faltimo pode oferecer ao visitante 2 op\u00e7\u00f5es ap\u00f3s o clique em um link: baixar o arquivo para seu PC ou ent\u00e3o abri-lo remotamente (documentos do Word, PDFs, etc).<\/p>\n<p>Para for\u00e7ar o download, evitando que a op\u00e7\u00e3o de escolha apare\u00e7a para o visitante, utilize o c\u00f3digo abaixo:<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\" value=\"1\"><span class=\"typ\">AddType<\/span><span class=\"pln\"> application<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">octet<\/span><span class=\"pun\">\u2013<\/span><span class=\"pln\">stream <\/span><span class=\"pun\">.<\/span><span class=\"pln\">pdf<\/span><\/li>\n<li class=\"L1\"><span class=\"typ\">AddType<\/span><span class=\"pln\"> application<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">octet<\/span><span class=\"pun\">\u2013<\/span><span class=\"pln\">stream <\/span><span class=\"pun\">.<\/span><span class=\"pln\">avi<\/span><\/li>\n<li class=\"L2\"><span class=\"typ\">AddType<\/span><span class=\"pln\"> application<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">octet<\/span><span class=\"pun\">\u2013<\/span><span class=\"pln\">stream <\/span><span class=\"pun\">.<\/span><span class=\"pln\">xls<\/span><\/li>\n<\/ol>\n<p>No exemplo acima, todos os arquivos com extens\u00f5es .pdf , .avi e .xls ser\u00e3o automaticamente baixados para o computador do visitante sempre que ele clicar nos links a eles correspondentes. Adicione novas linhas e\/ou altere os tipos de arquivos conforme suas necessidades.<\/p>\n<h2><span id=\"15)_Bloqueando_visitantes_com_base_no_%E2%80%9Creferring_domain%E2%80%9D\" class=\"ez-toc-section\"><\/span>15) Bloqueando visitantes com base no \u201creferring domain\u201d<\/h2>\n<p>Voc\u00ea pode tamb\u00e9m impedir que determinados visitantes acessem seu site com base no \u201creferring domain\u201d, ou seja, com base no site que \u201cindicou\u201d o seu a eles. Digamos que exista algum link para seu site, por algum motivo, em algum \u201csite duvidoso\u201d na R\u00fassia. Ou qualquer outro motivo, localiza\u00e7\u00e3o, etc:<\/p>\n<p><code>&lt;IfModule mod_rewrite.c&gt;<br \/>\nRewriteEngine on<br \/>\nRewriteCond %{HTTP_REFERER} <a class=\"vglnk\" href=\"http:\/\/dominioproblematico1.com\" rel=\"nofollow\">dominioproblematico1.com<\/a> [NC,OR] RewriteCond %{HTTP_REFERER} <a class=\"vglnk\" href=\"http:\/\/dominioproblematico2.com\" rel=\"nofollow\">dominioproblematico2.com<\/a> [NC,OR] RewriteRule .* - [F] &lt;\/ifModule&gt;<\/code><\/p>\n<p>Voc\u00ea pode incluir\/editar os \u201cdom\u00ednios problem\u00e1ticos\u201d conforme suas necessidades, ou at\u00e9 mesmo adicionar mais.<\/p>\n<h2><span id=\"16)_Forcando_UTF8\" class=\"ez-toc-section\"><\/span>16) For\u00e7ando UTF-8<\/h2>\n<p>Para evitar problemas de codifica\u00e7\u00e3o e renderiza\u00e7\u00e3o com seus arquivos .html, por exemplo, voc\u00ea pode incluir o seguinte c\u00f3digo em seu .htaccess para for\u00e7ar o uso da codifica\u00e7\u00e3o UTF-8:<\/p>\n<p><code>&lt;FilesMatch \".(htm|html|css|js)$\"&gt;<br \/>\nAddDefaultCharset UTF-8<br \/>\n&lt;\/FilesMatch&gt;<\/code><\/p>\n<p>\u00a0<\/p>\n<h2><span id=\"Protegendo_a_area_administrativa_do_WordPress\" class=\"ez-toc-section\">17) <\/span>Protegendo a \u00e1rea administrativa do WordPress<\/h2>\n<p>Se voc\u00ea utiliza o CMS WordPress, nunca \u00e9 demais proteger sua \u00e1rea administrativa, prevenindo invas\u00f5es e ataques. Crie um arquivo .htaccess conforme explicado abaixo e o coloque dentro da pasta \/wp-admin\/:<\/p>\n<p>&lt;Limit GET POST PUT&gt;<br \/>order deny,allow<br \/>deny from all<br \/>allow from 79.187.22.68<br \/>&lt;\/Limit&gt;<\/p>\n<p>Note que este \u00e9 um m\u00e9todo de prote\u00e7\u00e3o um tanto quanto dr\u00e1stico. Estamos aqui liberando o acesso \u00e0 \u00e1rea administrativa do WordPress para um \u00fanico IP. O seu, no caso. Altere o c\u00f3digo acima e substitua \u201c79.187.22.68\u2033 pelo seu IP. Para descobri-lo, basta acessar este link ou este.<\/p>\n<p>No Windows, voc\u00ea pode tamb\u00e9m acessar o prompt do DOS e digitar o comando abaixo, seguido de um &lt;ENTER&gt;:<\/p>\n<ol class=\"linenums\">\n<li class=\"L0\" value=\"1\"><span class=\"pln\">ipconfig<\/span><\/li>\n<\/ol>\n<p>J\u00e1 no Linux, utilize um dos comandos abaixo, tamb\u00e9m com um &lt;ENTER&gt; em seguida:<\/p>\n<p><code>\/sbin\/ifconfig -a<\/code><\/p>\n<p>Ou<\/p>\n<p><code>ifconfig -a<\/code><\/p>\n<p>\u00a0<\/p>\n<p><strong>OBS:<\/strong> esta prote\u00e7\u00e3o ter\u00e1 tamb\u00e9m um \u201ccusto\u201d. Caso seu IP seja din\u00e2mico, voc\u00ea ter\u00e1 que alterar o .htaccess acima praticamente todos os dias, removendo o IP \u201cvelho\u201d e adicionando o \u201cnovo\u201d. Mas a seguran\u00e7a extra vale a pena, \u00e9 claro.<\/p>\n<h2><span id=\"18)_Protegendo_o_arquivo_wpconfig_php_do_WordPress\" class=\"ez-toc-section\"><\/span>18) Protegendo o arquivo wp-config.php do WordPress<\/h2>\n<p>O arquivo wp-config.php do WordPress, localizado na raiz da instala\u00e7\u00e3o do sistema, \u00e9 outro elemento important\u00edssimo do CMS. Ele guarda, por exemplo, informa\u00e7\u00f5es da base de dados em utiliza\u00e7\u00e3o (nome do banco, usu\u00e1rio, senha). Isto dentre outros dados cr\u00edticos.<\/p>\n<p>Desabilitar o acesso a ele tamb\u00e9m \u00e9 essencial para manter o seu blog em seguran\u00e7a.<\/p>\n<p>Use o seguinte c\u00f3digo:<\/p>\n<p><code>&lt;files wp-config.php&gt;<br \/>\norder allow,deny<br \/>\ndeny from all<br \/>\n&lt;\/files&gt;<\/code><\/p>\n<h2><span id=\"19)_Protegendo_a_pasta_wpcontent_do_WordPress\" class=\"ez-toc-section\"><\/span>19) Protegendo a pasta wp-content do WordPress<\/h2>\n<p>Outra \u00e1rea cr\u00edtica do WordPress. \u00c9 na pasta wp-content que se encontram arquivos de temas, de plugins e tamb\u00e9m os arquivos enviados para o servidor para a devida inser\u00e7\u00e3o em postagens, por exemplo (imagens, etc).<\/p>\n<p>Utilize o c\u00f3digo abaixo em um arquivo .htacess e o envie para a pasta \u201c\/wp-content\/\u201d:<\/p>\n<p>Order deny,allow<br \/>Deny from all<br \/>&lt;Files ~ \u201c.(xml|css|jpe?g|png|gif|js)$\u201d&gt;<br \/>Allow from all<br \/>&lt;\/Files&gt;<\/p>\n<p>O <em>snippet<\/em> acima far\u00e1 com que ningu\u00e9m (um <em>hacker<\/em>, por exemplo) consiga realizar o <em>upload<\/em> de outros tipos de arquivos al\u00e9m dos especificados no c\u00f3digo.<\/p>\n<h2><span id=\"20)_Usando_o_cache_do_navegador\" class=\"ez-toc-section\"><\/span>20) Usando o cache do navegador<\/h2>\n<p>Que tal usar um recurso extra para acelerar o tempo de carregamento do site, for\u00e7ando a utiliza\u00e7\u00e3o do cache do navegador? Assim, os <em>browsers<\/em> dos visitantes ser\u00e3o capazes de salvar elementos de seu website, de maneira tal que eles n\u00e3o ser\u00e3o baixados novamente e desnecessariamente, a cada novo acesso.<\/p>\n<p>Isto garante economia de banda para o propriet\u00e1rio do site e para o visitante, obviamente:<\/p>\n<p><code>&lt;IfModule mod_expires.c&gt;<br \/>\nExpiresActive On<br \/>\nExpiresByType image\/jpg \"access 1 year\"<br \/>\nExpiresByType image\/jpeg \"access 1 year\"<br \/>\nExpiresByType image\/gif \"access 1 year\"<br \/>\nExpiresByType image\/png \"access 1 year\"<br \/>\nExpiresByType text\/css \"access 1 month\"<br \/>\nExpiresByType application\/pdf \"access 1 month\"<br \/>\nExpiresByType text\/x-javascript \"access 1 month\"<br \/>\nExpiresByType application\/x-shockwave-flash \"access 1 month\"<br \/>\nExpiresByType image\/x-icon \"access 1 year\"<br \/>\nExpiresDefault \"access 2 days\"<br \/>\n&lt;\/IfModule&gt;<\/code><\/p>\n<h2><span id=\"Finalizando_Informacoes_sobre_o_Htaccess\" class=\"ez-toc-section\"><\/span>Finalizando Informa\u00e7\u00f5es sobre o Htaccess<\/h2>\n<p>Como voc\u00ea p\u00f4de perceber, o .htaccess \u00e9 uma ferramenta extremamente valiosa. Um \u201csimples\u201d arquivo, que na verdade cont\u00e9m texto puro, trocando em mi\u00fados, mas que \u00e9 capaz de resolver muitos problemas ou dificuldades do dia a dia.<\/p>\n<p>Uma ferramenta poderosa, importante e muito \u00fatil, que deve sempre ser considerada por webmasters e administrador de servidores web.<\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[55],"tags":[],"class_list":["post-11370","post","type-post","status-publish","format-standard","hentry","category-blog"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>20 dicas e truques extremamente uteis do .htaccess - TodayHost - Hospedagem, Consultoria e Desenvolvimento de Sites<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/todayhost.com.br\/site\/20-dicas-e-truques-extremamente-uteis-do-htaccess\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"20 dicas e truques extremamente uteis do .htaccess - TodayHost - Hospedagem, Consultoria e Desenvolvimento de Sites\" \/>\n<meta property=\"og:url\" content=\"https:\/\/todayhost.com.br\/site\/20-dicas-e-truques-extremamente-uteis-do-htaccess\/\" \/>\n<meta property=\"og:site_name\" content=\"TodayHost - Hospedagem, Consultoria e Desenvolvimento de Sites\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/todayhost\/\" \/>\n<meta property=\"article:author\" content=\"https:\/\/web.facebook.com\/todayhost\/?ref=bookmarks\" \/>\n<meta property=\"article:published_time\" content=\"2020-06-25T23:31:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-06-25T23:45:22+00:00\" \/>\n<meta name=\"author\" content=\"Comunica\u00e7\u00e3o\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Comunica\u00e7\u00e3o\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/todayhost.com.br\\\/site\\\/20-dicas-e-truques-extremamente-uteis-do-htaccess\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/todayhost.com.br\\\/site\\\/20-dicas-e-truques-extremamente-uteis-do-htaccess\\\/\"},\"author\":{\"name\":\"Comunica\u00e7\u00e3o\",\"@id\":\"https:\\\/\\\/todayhost.com.br\\\/site\\\/#\\\/schema\\\/person\\\/4d7c060fae6b791bb96dfa415b2e325e\"},\"headline\":\"20 dicas e truques extremamente uteis do .htaccess\",\"datePublished\":\"2020-06-25T23:31:42+00:00\",\"dateModified\":\"2020-06-25T23:45:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/todayhost.com.br\\\/site\\\/20-dicas-e-truques-extremamente-uteis-do-htaccess\\\/\"},\"wordCount\":3072,\"articleSection\":[\"Blog\"],\"inLanguage\":\"pt-BR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/todayhost.com.br\\\/site\\\/20-dicas-e-truques-extremamente-uteis-do-htaccess\\\/\",\"url\":\"https:\\\/\\\/todayhost.com.br\\\/site\\\/20-dicas-e-truques-extremamente-uteis-do-htaccess\\\/\",\"name\":\"20 dicas e truques extremamente uteis do .htaccess - TodayHost - Hospedagem, Consultoria e Desenvolvimento de Sites\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/todayhost.com.br\\\/site\\\/#website\"},\"datePublished\":\"2020-06-25T23:31:42+00:00\",\"dateModified\":\"2020-06-25T23:45:22+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/todayhost.com.br\\\/site\\\/#\\\/schema\\\/person\\\/4d7c060fae6b791bb96dfa415b2e325e\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/todayhost.com.br\\\/site\\\/20-dicas-e-truques-extremamente-uteis-do-htaccess\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/todayhost.com.br\\\/site\\\/20-dicas-e-truques-extremamente-uteis-do-htaccess\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/todayhost.com.br\\\/site\\\/20-dicas-e-truques-extremamente-uteis-do-htaccess\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\\\/\\\/todayhost.com.br\\\/site\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"20 dicas e truques extremamente uteis do .htaccess\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/todayhost.com.br\\\/site\\\/#website\",\"url\":\"https:\\\/\\\/todayhost.com.br\\\/site\\\/\",\"name\":\"TodayHost - Hospedagem, Consultoria e Desenvolvimento de Sites\",\"description\":\"Hospedagem, Consultoria e Desenvolvimento de Sites\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/todayhost.com.br\\\/site\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/todayhost.com.br\\\/site\\\/#\\\/schema\\\/person\\\/4d7c060fae6b791bb96dfa415b2e325e\",\"name\":\"Comunica\u00e7\u00e3o\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/223d953e4be4a397048c6c5112634198a90fd6f7255511c4ac417de540685c2a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/223d953e4be4a397048c6c5112634198a90fd6f7255511c4ac417de540685c2a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/223d953e4be4a397048c6c5112634198a90fd6f7255511c4ac417de540685c2a?s=96&d=mm&r=g\",\"caption\":\"Comunica\u00e7\u00e3o\"},\"sameAs\":[\"https:\\\/\\\/web.facebook.com\\\/todayhost\\\/?ref=bookmarks\"],\"url\":\"https:\\\/\\\/todayhost.com.br\\\/site\\\/author\\\/today\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"20 dicas e truques extremamente uteis do .htaccess - TodayHost - Hospedagem, Consultoria e Desenvolvimento de Sites","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/todayhost.com.br\/site\/20-dicas-e-truques-extremamente-uteis-do-htaccess\/","og_locale":"pt_BR","og_type":"article","og_title":"20 dicas e truques extremamente uteis do .htaccess - TodayHost - Hospedagem, Consultoria e Desenvolvimento de Sites","og_url":"https:\/\/todayhost.com.br\/site\/20-dicas-e-truques-extremamente-uteis-do-htaccess\/","og_site_name":"TodayHost - Hospedagem, Consultoria e Desenvolvimento de Sites","article_publisher":"https:\/\/www.facebook.com\/todayhost\/","article_author":"https:\/\/web.facebook.com\/todayhost\/?ref=bookmarks","article_published_time":"2020-06-25T23:31:42+00:00","article_modified_time":"2020-06-25T23:45:22+00:00","author":"Comunica\u00e7\u00e3o","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Comunica\u00e7\u00e3o","Est. tempo de leitura":"16 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/todayhost.com.br\/site\/20-dicas-e-truques-extremamente-uteis-do-htaccess\/#article","isPartOf":{"@id":"https:\/\/todayhost.com.br\/site\/20-dicas-e-truques-extremamente-uteis-do-htaccess\/"},"author":{"name":"Comunica\u00e7\u00e3o","@id":"https:\/\/todayhost.com.br\/site\/#\/schema\/person\/4d7c060fae6b791bb96dfa415b2e325e"},"headline":"20 dicas e truques extremamente uteis do .htaccess","datePublished":"2020-06-25T23:31:42+00:00","dateModified":"2020-06-25T23:45:22+00:00","mainEntityOfPage":{"@id":"https:\/\/todayhost.com.br\/site\/20-dicas-e-truques-extremamente-uteis-do-htaccess\/"},"wordCount":3072,"articleSection":["Blog"],"inLanguage":"pt-BR"},{"@type":"WebPage","@id":"https:\/\/todayhost.com.br\/site\/20-dicas-e-truques-extremamente-uteis-do-htaccess\/","url":"https:\/\/todayhost.com.br\/site\/20-dicas-e-truques-extremamente-uteis-do-htaccess\/","name":"20 dicas e truques extremamente uteis do .htaccess - TodayHost - Hospedagem, Consultoria e Desenvolvimento de Sites","isPartOf":{"@id":"https:\/\/todayhost.com.br\/site\/#website"},"datePublished":"2020-06-25T23:31:42+00:00","dateModified":"2020-06-25T23:45:22+00:00","author":{"@id":"https:\/\/todayhost.com.br\/site\/#\/schema\/person\/4d7c060fae6b791bb96dfa415b2e325e"},"breadcrumb":{"@id":"https:\/\/todayhost.com.br\/site\/20-dicas-e-truques-extremamente-uteis-do-htaccess\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/todayhost.com.br\/site\/20-dicas-e-truques-extremamente-uteis-do-htaccess\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/todayhost.com.br\/site\/20-dicas-e-truques-extremamente-uteis-do-htaccess\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/todayhost.com.br\/site\/"},{"@type":"ListItem","position":2,"name":"20 dicas e truques extremamente uteis do .htaccess"}]},{"@type":"WebSite","@id":"https:\/\/todayhost.com.br\/site\/#website","url":"https:\/\/todayhost.com.br\/site\/","name":"TodayHost - Hospedagem, Consultoria e Desenvolvimento de Sites","description":"Hospedagem, Consultoria e Desenvolvimento de Sites","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/todayhost.com.br\/site\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Person","@id":"https:\/\/todayhost.com.br\/site\/#\/schema\/person\/4d7c060fae6b791bb96dfa415b2e325e","name":"Comunica\u00e7\u00e3o","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/secure.gravatar.com\/avatar\/223d953e4be4a397048c6c5112634198a90fd6f7255511c4ac417de540685c2a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/223d953e4be4a397048c6c5112634198a90fd6f7255511c4ac417de540685c2a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/223d953e4be4a397048c6c5112634198a90fd6f7255511c4ac417de540685c2a?s=96&d=mm&r=g","caption":"Comunica\u00e7\u00e3o"},"sameAs":["https:\/\/web.facebook.com\/todayhost\/?ref=bookmarks"],"url":"https:\/\/todayhost.com.br\/site\/author\/today\/"}]}},"_links":{"self":[{"href":"https:\/\/todayhost.com.br\/site\/wp-json\/wp\/v2\/posts\/11370","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/todayhost.com.br\/site\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/todayhost.com.br\/site\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/todayhost.com.br\/site\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/todayhost.com.br\/site\/wp-json\/wp\/v2\/comments?post=11370"}],"version-history":[{"count":3,"href":"https:\/\/todayhost.com.br\/site\/wp-json\/wp\/v2\/posts\/11370\/revisions"}],"predecessor-version":[{"id":11376,"href":"https:\/\/todayhost.com.br\/site\/wp-json\/wp\/v2\/posts\/11370\/revisions\/11376"}],"wp:attachment":[{"href":"https:\/\/todayhost.com.br\/site\/wp-json\/wp\/v2\/media?parent=11370"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/todayhost.com.br\/site\/wp-json\/wp\/v2\/categories?post=11370"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/todayhost.com.br\/site\/wp-json\/wp\/v2\/tags?post=11370"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}