WordPress: 10 dicas para o arquivo .htaccess

O arquivo .htaccess é o arquivo que controla o webserver Apache e é extremamente útil, permitindo realizar uma série de tarefas bem interessantes e favoráveis ao seu site. Nunca se esqueça de que, antes de editar o seu arquivo .htaccess, você deverá sempre fazer um backup dele para evitar problemas futuros.

Remover o www na url

Por razões de otimização para buscadores (SEO), você poderá remover (ou usar sempre) o prefixo www nos endereços URL do seu site. O seguinte truque permite remover esse prefixo www da URL, e redirecionar qualquer URLs com www para a versão não-www automaticamente.
RewriteEngine On
RewriteCond %{HTTP_HOST} !^meusite.com$ [NC]
RewriteRule ^(.*)$ http://meusite.com/$1 [L,R=301]

Prevenir hotlinking

O hotlinking é uma má prática, que consiste em outros blogueiros utilizarem imagens do seu site no site deles, consumindo a sua banda. Quando alguém puxa uma imagem sua, essa pessoa está consumindo a sua banda para proveito próprio. Para prevenir esse abuso, utilize este truque no seu arquivo .htaccess substituindo as URL pelos seus próprios endereços.
RewriteEngine On
#Replace ?mysite.com/ with your blog url
RewriteCond %{HTTP_REFERER} !^http://(.+.)?meusite.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
#Replace /images/nohotlink.jpg with your "don't hotlink" image url
RewriteRule .*.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]

Redirecionar todos os feeds para o Feedburner

A maioria dos sites usa o Feedburner para distribuir os feeds RSS para os seus leitores. Se você usa o WordPress, você deverá redirecionar todos os seus feeds (rss, atom etc) para o seu feed do Feedburner. Modifique as linhas 2 e 3 do código, e depois copie e cole no seu arquivo .htaccess.
<IfModule mod_alias.c>
 RedirectMatch 301 /feed/(atom|rdf|rss|rss2)/?$ http://feedburner.com/seufeed/
 RedirectMatch 301 /comments/feed/(atom|rdf|rss|rss2)/?$ http://feedburner.com/seufeed/
</IfModule>

Criar páginas de erro customizadas

Cansado daquelas páginas de erro padrão que seu site apresenta? Crie alguns arquivos .html com o aspecto e o design que você deseja, carregue-os para o seu servidor, e adicione o seguinte truque no seu arquivo .htaccess:
ErrorDocument 400 /errors/badrequest.html
ErrorDocument 401 /errors/authreqd.html
ErrorDocument 403 /errors/forbid.html
ErrorDocument 404 /errors/notfound.html
ErrorDocument 500 /errors/serverr.html

Forçar o download de arquivos específicos

Quando você oferece alguns arquivos como mp3s, arquivos de Excel ou PowerPoint, ou mesmo um Ebook Grátis para download, você poderá forçar o download sem que tenha de aguardar pela decisão do browser sobre o que fazer. Este truque força o download de arquivos .xls e .eps a partir do seu servidor. Poderá editar o código para o tipo de arquivos que desejar.
<Files *.xls>
  ForceType application/octet-stream
  Header set Content-Disposition attachment
</Files>
<Files *.eps>
  ForceType application/octet-stream
  Header set Content-Disposition attachment
</Files>

Registrar erros de PHP

Este truque é uma forma interessante de registrar erros dos seus arquivos PHP num arquivo de registro (log). Comece criando um arquivo do tipo php_error.log e coloque-o no seu servidor, e depois copie e cole para dentro do seu arquivo .htaccess. Não se esqueça de modificar a localização do arquivo de registros na linha 7 do código.
# display no errs to user
php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off
# log to file
php_flag log_errors on
php_value error_log /location/to/php_error.log

Remover extensão de arquivos nas urls

As extensões de arquivos podem ser extremamente importantes para desenvolvedores, mas não existe interesse nenhum em você mostrar a extensão de um determinado arquivo para os seus usuários. Este truque irá remover a extensão .html de qualquer arquivo html que você tenha em seu servidor. Obviamente, este truque pode ser facilmente adaptável a outro tipo de extensões, como por exemplo as extensões PHP.
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.*)$ $1.html
# Replace html with your file extension, eg: php, htm, asp

Prevenir listagem de diretórios

Em seu servidor, quando um determinado diretório não contém um arquivo index, o Apache mostra automaticamente uma listagem de todos os arquivos presentes nesse diretório. Se você tiver uma pasta com imagens em seu servidor, se alguém acessar o endereço dessa pasta, poderá ver todo o conteúdo que você tem lá dentro. Se não quer que ninguém veja os arquivos que estão no seu servidor, copie e cole o seguinte de código para dentro do seu arquivo .htaccess.
Options -Indexes

Reduzir o peso das páginas

Você sabia que é possível enviar informação comprimida para os seus usuários, a qual é descomprimida pelo cliente do próprio usuário? Este código irá provavelmente poupar ocupação da banda e reduzir drasticamente o peso das suas páginas.
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

Adicionar UTF-8 aos arquivos automaticamente

De forma a evitar problemas de codificação, você pode forçar um determinado tipo de codificação diretamente a partir do seu arquivo .htaccess. Você pode garantir que todos os seus arquivos HTML irão ser renderizados corretamente, mesmo que se esqueça de adicionar uma diretiva às suas páginas HTML.
<FilesMatch ".(htm|html|css|js)$">
AddDefaultCharset UTF-8
</FilesMatch>

Dica bônus: não se esqueça de fazer um backup do seu arquivo .htaccess antes de editar!

iMasters

Postar um comentário