Htaccess direto ao ponto

Os arquivos .htaccess oferecem um meio de fazer mudanças nas configurações do diretório. Um arquivo contendo uma ou mais diretrizes de configurações é colocado em um diretório em particular. Enquanto isso as diretrizes se aplicam para aquele diretório e todos os seu subdiretórios subseqüentes. No geral, se usa arquivos .htaccess quando você não tem acesso ao arquivo de configuração principal do servidor.

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