Conheça os melhores hacks para .htaccess e WordPress

Na minha opinião, o .HTACCESS é o arquivo de configuração mais essencial, importante e dinâmico para um site ou blog, seja ele em WordPress ou não. A partir dele é possível realizar uma inifinita gama de ajustes, bloqueios e configurações básicas e avançadas.

Pensando justamente nisso, separei as melhores dicas, as melhores manhas e os melhores tutoriais para .htaccess disponíveis atualmente para que você possa otimizar e aumentar o desempenho de seu servidor web ao extremo. Ganhando, assim, velocidade e performance para seu blog ou site. Confira:

Como remover cookies e transformar um domínio em CookieLess

Header unset Cookie
Header unset Set-Cookie

Usando o cache do navegador (cache browsing)

Uma excelente forma de otimizar o tempo de carregamento do seu blog forçando o navegador (browser) a usar o cache para imagens, estilos CSS e Java Script.

FileETag MTime Size
<ifmodule mod_expires.c>
   <filesmatch "\.(jpg|gif|png|css|js)$">
      ExpiresActive on
      ExpiresDefault "access plus 1 year"
   </filesmatch>
</ifmodule>

Como otimizar a requisição de arquivos estáticos

Outra dica altamente recomendada para ajudar a melhorar a sua pontuação no Page Speed, ferramenta recomendada do Google, que ajuda os desenvolvedores a otimizar ao máximo o seu blog.

#Habilitar Expires
ExpiresActive On
ExpiresDefault "access plus 1 year"
 
#Aumentar velocidade do cache
FileETag MTime Size
 
#Configura 1 ano de cache e controle de cache especifico para arquivos de texto
<FilesMatch "\.(js|css|ico|txt|htm|html)$">
   ExpiresDefault A31536000
   Header append Cache-Control "proxy-revalidate"
</FilesMatch>
 
#Configurar 1 ano de cache para arquivos de midia
<FilesMatch "\.(gif|jpg|jpeg|png|swf|flv|pdf)$">
   ExpiresDefault A31536000
   Header append Cache-Control "public"
</FilesMatch>
 
#Ativa o Deflate para arquivos de texto
<FilesMatch "\.(js|css|ico|txt|htm|html|php)$">
   SetOutputFilter DEFLATE
</FilesMatch>
 
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-javascript text/css text/javascript

Adicionando expiração de cabeçalhos com mod_headers.c

O código a seguir ensina como criar uma data de expiração para os seus cabeçalhos.

<IfModule mod_headers.c>
   <filesmatch .(ico|pdf|flv|jpg|jpeg|png|gif|swf)$="">
      Header set Expires "Wed, 21 Dec 2012 21:00:00 GMT"
   </filesmatch>
</IfModule>

Como proteger seu blog de HotLinks

Hotlinking é o termo usado quando alguém usa uma imagem em um blog, mas esta imagem está hospedada em outro servidor. É uma forma de roubar a banda de outro blog. Com a função abaixo isso acabrá de vez!

Options +FollowSymlinks
#Protecao contra hotlinking
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?seudominio.com/ [nc]
RewriteRule .*.(gif|jpg|png)$ http://seudominio.com/images/parar-hotlinking.jpg[nc]

Veja mais dicas para acabar de vez com HotLinks e configurar Anti-Leech no Tutorial WordPress: como otimizar e aumentar o desempenho do seu blog ou site

Criando uma lista negra para IP’s banidos

Se você está cansados dos spammers, que tal proibir o acesso destes ratos através do seu IP?! Basta colocar o código abaixo em seu arquivo .htaccess:

allow from all
deny from 192.168.1.123
deny from 192.168

Redirecionamento 301 amigável com SEO

Para quem deseja transferir todo o conteúdo de um domínio para um novo blog/site, é extremamente recomendado usar o redirecionamento 301 amigável via .htaccess, conforme pode ser visto a seguir. Desta forma você estará se protegendo contra possíveis puniçoes dos mecanismos de busca, como o Google, por exemplo.

RewriteEngine On
RewriteRule ^(www\.)?dominioantigo.com/.*$ http://dominionovo.com/$1 [R=301,L]

Criando uma página de ERRO customizada

Se você está cansado do formato e layout das páginas de erro 404, que tal criar suas próprias páginas padronizadas ao seu gosto e estilo?! Depois que tiver todas elas prontas, basta copiar o código abaixo para o seu arquivo .htaccess e pronto!

ErrorDocument 401 /error/401.php
ErrorDocument 403 /error/403.php
ErrorDocument 404 /error/404.php
ErrorDocument 500 /error/500.php

Substitua a INDEX por outra página inicial

Se você não quer que a sua página inicial seja o index.html, você tem a opção de selecionar outro arquivo para isso. Coloque o código no seu .htaccess e pronto!

#Serve Alternate Default Index Page
DirectoryIndex about.html

Desabilitar acesso e navegação a um diretório ou pasta

Para que você proiba o acesso a um detemrinado diretório com objetivo de proteger seus arquivos, como temas do WordPress, cole o código abaixo no seu arquivo .htaccess e pronto!

Options All -Indexes

Redirecionar os feeds do WordPress para o FeedBurner

Para não perder os leitores fieis, a melhor maneira de redirecionar aqueles que ainda usam o RSS Feed do WordPress para o FeedBurner é usando o código a seguir:

#Redirecionando os Feeds do WordPress para o FeedBurner
<ifmodule mod_rewrite.c="">
   RewriteEngine on
   RewriteCond %{HTTP_USER_AGENT} !FeedBurner    [NC]
   RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC]
   RewriteRule ^feed/?([_0-9a-z-]+)?/?$ http://feeds.feedburner.com/yourfeed [R=302,NC,L]
</ifmodule>

Desabilitando comentários sem requisições de referência

Cansado dos comentários que BOTS de spammers deixam em seu blog?! Agora é possível bloquear o uso da caixa de comentários para aqueles visitantes que não vem de lugar nenhum (No Referrer Requests) com o código a seguir:

RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.*yourblog.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]

Removendo extensão de arquivo da URL

O que este código faz é remover a extensão de um arquivo como .php ou .html ou outro de sua preferência.

RewriteRule ^(([^/]+/)*[^.]+)$ /$1.php [L]

Removendo o www. de uma URL automaticamente

Para remover o famigerado www de um domínio, basta inserir o código abaixo em seu .htaccess e aproveitar a dica.

#Remove www da URL
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.domain\.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301]

Outra forma permanente de remover o www. de um domínio

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

Redirecionando todos os visitantes, exceto IP’s específicos

Se deseja redirecionar todos os visitantes para uma outra página, com exceção de alguns IP’s de sua escolha, use o código abaixo:

ErrorDocument 403 http://www.seudominio.com
Order deny,allow
Deny from all
Allow from 124.34.48.165
Allow from 102.54.68.123

Configurando um email padrão para o webmaster

ServerSignature EMail
SetEnv SERVER_ADMIN default@seudominio.com

Desabilitando as requisições de download

Quando alguém vai fazer um download o servidor envia uma requisição perguntando para o visitante se ele quer salvar o arquivo no HD ou apenas abrí-lo remotamente. Se você deseja habilitar somente o download do arquivo direto para o HD, use o código abaixo:

AddType application/octet-stream .pdf
AddType application/octet-stream .zip
AddType application/octet-stream .mov

Removendo o /category/ da URL do seu blog WordPress

O WordPress é o melhor CMS que existe hoje na atualidade, porém, ainda existem certos incômodos para muitos autores e desenvolvedores, como é o caso dele automaticamente criar o /categoria/ sem o consentimento do autor. Para acabar de vez com este problema, adicione o código abaixo:

RewriteRule ^category/(.+)$ http://www.seudominio.com/$1 [R=301,L]

Como ativar compressão de dados estáticos

Desta forma é possível reduzir o consumo de banda e aumentar a velocidade de carregamento de suas páginas web. Veja o código:

AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html

Redirecionando os permalinks antigos para /%postname%/

Para se ter um bom SEO e, também, uma URL ainda mais amigável, que tal retirar de sua URL o mês e o dia e colocar apenas o título do post em questão?! Veja exemplos:

Antes: http://seudominio.com/2010/11/30/meu-post
Depois: http://seudominio.com/meu-post

Para fazer esta mudança basta inserir o código em seu .htaccess:

RedirectMatch 301 /([0-9]+)/([0-9]+)/([0-9]+)/(.*)$ http://www.seudominio.com/$4

Redirecionando seus visitantes para uma página de manutenção

Você vai realizar uma manutenção em seu blog e não gostaria que seus visitantes percebessem o que está acontencendo durante este momento?! Crie uma página com aviso de manutenção e ative a sua execução para todo novo visitante via .htaccess:

RewriteEngine on
RewriteCond %{REQUEST_URI} !/manutencao.html$
RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123
RewriteRule $ /manutencao.html [R=302,L]

Só não esqueça e remover o código depois de concluir a manutenção!

Liberando acesso ao WP-ADMIN apenas para o seu IP

Se você não quer que ninguém tenha acesso ao seu wp-admin, então basta inserir no .htaccess o código a seguir. Mas lembre-se de substituir o XXX.XXX.XXX.XXX com o seu IP estático:

AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "Example Access Control"
AuthType Basic
<LIMIT GET>
order deny,allow
deny from all
allow from XXX.XXX.XXX.XXX
</LIMIT>

Como proteger um arquivo específico via .htaccess?!

O código a seguir vai proibir o acesso ao seu arquivo .htaccess, mas ele também pode ser usado com qualquer arquivo de sua escolha.

#Protegendo o arquivo .htaccess
<files .htaccess="">
   order allow,deny
   deny from all
</files>

Protegendo arquivos e pastas com senha

Você pode ativar o uso de senhas para acessar determinados locais, como um diretório ou um arquivo específico. Veja código abaixo:

#Protecao com senha para arquivo
<files secure.php="">
   AuthType Basic
   AuthName "Prompt"
   AuthUserFile /home/path/.htpasswd
   Require valid-user
</files>
 
#Protecao com senha para diretorio
resides
AuthType basic
AuthName "This directory is protected."
AuthUserFile /home/path/.htpasswd
AuthGroupFile /dev/null
Require valid-user

Como usar compressão com o mod_deflate?!

Talvez esta seja uma alternativa mais rápida que a compressão Gzip. Cole o código abaixo no topo do seu .htaccess:

<ifmodule mod_deflate.c="">
   <filesmatch .(.jpg|.gif|.png|.tiff|.ico|js|css)$="">
      SetOutputFilter DEFLATE
   </filesmatch>
</ifmodule>


Gostou das dicas?! Veja agora o Tutorial WordPress: como otimizar e aumentar o desempenho do seu blog ou site

6 comentários

  1. Tweets that mention Conheça os melhores hacks para .htaccess e WordPress — Topsy.com

    Publicado em 30/11/2010 às 19:37 [+]

    [...] This post was mentioned on Twitter by Manoel Netto, barba uonderias , Daniel Becher, Janio Sarmento, celsojunior  and others. celsojunior  said: Conheça os melhores hacks para .htaccess e WordPress. http://goo.gl/9NZPd [...]

  2. Edgar

    Publicado em 01/12/2010 às 13:19 [+]

    Maravilha, post muito útil, Obrigado e parabens.

  3. jhon

    Publicado em 01/12/2010 às 15:55 [+]

    Parabens muito bom o tutorial… msm que naum seja taum detalhista em cada opção.. mais foi de grande ajuda… Flws….

  4. Pedro Costa Neves

    Publicado em 10/12/2010 às 13:31 [+]

    E as imagens vindo do timthumb.php? Não consegui fazer a prevenção de hotlinks qdo rola timthumb antes.

  5. Anderson

    Publicado em 28/12/2011 às 19:13 [+]

    Olá Celso faz tempo que não venho ao seu blog tive que dar uma parada devido ao trabalho obrigado por não apagar este post.

    Um forte abraço.

  6. Maicon Sobczak

    Publicado em 10/02/2012 às 16:03 [+]

    O post mais útil que encontrei nos últimos tempos.

Compartilhe suas ideias! Deixe um comentário...

Comment moderation is enabled. Your comment may take some time to appear.