Forums » PHP e MySQL

Conheça os melhores hacks para .htaccess

    • 466 posts
    25 de junho de 2014 23:44:39 ART

    Conheça os melhores hacks para .htaccess 

    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 noPage 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-Leechno 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>