Confira o modelo abaixo que apresenta uma coleção de dicas para otimização de performance, de fácil entendimento e manipulação. Este modelo não prescreve nenhuma filosofia, apenas auxilia o desenvolvimento.
# Fontes de Kroc Camen: camendesign.com/.htaccess # Adaptação de Leonardo Moreira: leonardomoreira.com.br/htaccess RewriteEngine on # Definindo o idioma. Recursos como x-webkit-speech (http://migre.me/46mS9) usam o idioma padrão. DefaultLanguage pt-BR # Se você usa uma index page diferente do padrão do servidor, defina abaixo: DirectoryIndex main.html # Definindo o fuso horário do servidor SetEnv TZ America/Sao Paulo # Remove assinatura do servidor ServerSignature Off # Exibe 404 para uma reescrita se uma pasta de mesmo nome não existir Options -MultiViews # Impede de navegar em pastas sem um documento padrão (index) Options -Indexes # Para habilitar a navegação no diretório use: # Options +Indexes # Página 404 ErrorDocument 404 /404.html # Previnindo acesso <filesmatch ".(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$"=""> Order Allow,Deny Deny from all </filesmatch> # # Forçando a última versão do IE, em vários casos quando ele poderia voltar ao modo IE7 # Use ChromeFrame se estiver instalado # <IfModule mod_setenvif.c> <IfModule mod_headers.c> BrowserMatch MSIE ie Header set X-UA-Compatible "IE=Edge,chrome=1" env=ie </IfModule> </IfModule> # # É preciso informar os proxies alterações de conteúdo baseado em UA # <IfModule mod_headers.c> Header append Vary User-Agent </IfModule> # # Permite o acesso de todos os domínios para as web fontes. # <FilesMatch ".(ttf|otf|eot|woff|font.css)$"> <IfModule mod_headers.c> Header set Access-Control-Allow-Origin "*" </IfModule> </FilesMatch> # Forçando a codificação AddDefaultCharset utf-8 AddCharset utf-8 .html .css .js .xml .json .rss # # Filetypes adicionais # # video AddType video/ogg ogg ogv AddType video/mp4 mp4 AddType video/webm webm # Servindo SVG do jeito certo. Necessário para webfonts SVG no iPad # twitter.com/FontSquirrel/status/14855840545 AddType image/svg+xml svg svgz AddEncoding gzip svgz # webfonts AddType application/vnd.ms-fontobject eot AddType font/truetype ttf AddType font/opentype otf AddType font/woff woff # variados AddType image/vnd.microsoft.icon ico AddType image/webp webp AddType text/cache-manifest manifest AddType text/x-component htc AddType application/x-chrome-extension crx AddType application/rss+xml .rss AddType text/remarkable .rem AddType text/plain .do # “to.do” files # Compressão gzip <IfModule mod_deflate.c> # html, txt, css, js, json, xml, htc: AddOutputFilterByType DEFLATE text/html text/plain text/css application/json AddOutputFilterByType DEFLATE text/javascript application/javascript application/x-javascript AddOutputFilterByType DEFLATE text/xml application/xml text/x-component # webfonts e svg: <FilesMatch ".(ttf|otf|eot|svg)$" > SetOutputFilter DEFLATE </FilesMatch> </IfModule> # # Fazendo cache de recursos com Expires HTTP # Lembre-se de assumir controle de versão com cache-busting # # Ex. <script src="master.js?20100608"></script> # # Mais detalhes em: stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring/ # <IfModule mod_expires.c> Header set Cache-Control "public" ExpiresActive on ExpiresDefault "access plus 1 month" ExpiresByType text/cache-manifest "access plus 0 seconds" ExpiresByType text/html "access plus 0 seconds" # Dados ExpiresByType text/xml "access plus 0 seconds" ExpiresByType application/xml "access plus 0 seconds" ExpiresByType application/json "access plus 0 seconds" # Feed RSS ExpiresByType application/rss+xml "access plus 1 hour" # Favicon (não pode ser renomeado) ExpiresByType image/vnd.microsoft.icon "access plus 1 week" # Imagens, vídeo, audio; ExpiresByType image/gif "access plus 1 month" ExpiresByType image/png "access plus 1 month" ExpiresByType image/jpg "access plus 1 month" ExpiresByType image/jpeg "access plus 1 month" ExpiresByType video/ogg "access plus 1 month" ExpiresByType audio/ogg "access plus 1 month" ExpiresByType video/mp4 "access plus 1 month" ExpiresByType video/webm "access plus 1 month" # Webfonts ExpiresByType font/truetype "access plus 1 month" ExpiresByType font/opentype "access plus 1 month" ExpiresByType font/woff "access plus 1 month" ExpiresByType image/svg+xml "access plus 1 month" ExpiresByType application/vnd.ms-fontobject "access plus 1 month" # CSS / jScript ExpiresByType text/css "access plus 1 month" ExpiresByType application/javascript "access plus 1 month" ExpiresByType text/javascript "access plus 1 month" </IfModule> # # Estamos usando HTTP Expires, não precisamos do ETag, desativar! # FileETag None # Permite que cookies sejam enviados por iframes (somente IE). Descomentar para usar. # # <IfModule mod_headers.c> # <Location /> # Header set P3P "policyref="/w3c/p3p.xml", CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"" # </Location> # </IfModule> # no-www, retira o "www" e redireciona. <IfModule mod_rewrite.c> RewriteCond %{HTTPS} !=on RewriteCond %{HTTP_HOST} ^www.(.+)$ [NC] RewriteRule ^(.*)$ http://%1/$1 [R=301,L] </IfModule>
iMasters
Postar um comentário