Cursos de Informática Grátis www.megainforcursos.com

30 de junho de 2012

Utilidades do arquivo .htaccess


Quem possue um site hospedado em plataforma linux, certamente já mexeu ou pelo menos ouviu falar do apache. O .htaccess é um arquivo de controle do apache, cujas as funções são: redicionar URLs, bloquear diretórios com senhas, criar erros personalizados como o erro 404, escolher se o site acessa sem o com o www  e etc. Veja aqui funções importantes deste arquivo, e aprenda a dominá-loO .htaccess é um arquivo sem nome, ou seja, ele possue apenas extensão. Para criar as regras abaixo, abra o bloco de notas ou similar, salve como “todos os arquivos” com o nome .htaccess.

Ocultando o index da URL

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+/)*index\.html\ HTTP/
RewriteRule ^(([^/]+/)*)index\.html$ http://www.seusite.com.br/$1 [R=301,L]
#obs, se o seu site é feito em php, substitua os "html" pelo mesmo

Protegendo o seu site contra cópia ou uso indevido de arquivos (como scripts php, js, css, imagens)

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://seusite.com.br/.*$ [NC]  #este site está liberado a usar (o seu site no caso)
RewriteCond %{HTTP_REFERER} !^http://www.seusite.com.br/.*$ [NC]  #este site está liberado a usar
RewriteCond %{HTTP_REFERER} !^http://www.google.com.br/.*$ [NC]  #liberar o google para usar as suas imagens
RewriteRule .*\.(jpg|jpeg|gif|png|bmp|php|js|swf)$ – [F,NC]
#Neste caso, se alguém que não está na lista acima tentar usar as suas imagens direto do seu site ou usar os seus scripts, mostrará uma tela com erro e as imagens não serão mostradas.

Bloquear o arquivo .htaccess contra acesso pela URL


  deny from all

Bloqueando arquivos específicos contra acesso pela URL


  order allow,deny
  deny from all

Sempre colocar “www” na URL

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(seusite\.com\.br)(:80)? [NC]
RewriteRule ^(.*) http://www.seusite.com.br/$1 [R=301,L]
order deny,allow

Comprimir arquivos do site para consumir menos banda

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

Criando páginas de erros personalizadas

ErrorDocument 400 /sua-pagina-erro-400
ErrorDocument 404 /página-de-erro-404
ErrorDocument 500 /página-para-erro-500
#obs saiba mais sobre como criar páginas de erros personalizadas

Alterar a página inicial (padrão) do site

DirecttoryIndex minhaoutrapagina.html

Redirecionamento 301 com htaccess

Redirect 301 /página-a-ser-movida  http://www.seusite.com.br/pagina-movida-para-ca

Bloquear listagem de diretórios

Options -Indexes

Forçar o uso de SSL

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://seu-site.com.br/$1 [R,L]

Desabilitar case sensitive

CheckSpelling On
#agora a url PAGINA.HTML é igualmente acessada por pagina.html

Restringindo o acesso por IP

Order allow,deny
allow from 192.168.0.
deny from all
 # Deixa a somente a INTRANET acessar
Order deny,allow
deny from 192.168.0.25
allow from all
# Deixa todo mundo acessar, menos o IP 192.168.0.25
Order deny, allow
deny from all
#bloquear geral

Redirecionar acesso de um site para outro lugar

RewriteEngine on
RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?bloqueado.com.br.*$ [NC]
RewriteRule .* http://www.antispam.br [R,L]
#Se o site "bloqueado" mandar algum visitante para aqui, é redirecionado para o "antispam"

Expressões regulares

#todos os arquivos de uma página serão redirecionados para outra
RewriteEngine on
RewriteRule ^pagina-antiga/(.*) http://www.novosite.com.br/pagina-antiga/$1
#redirecionar somente os arquivos terminados em php
RewriteEngine om
RewriteRule ^pagina-antiga/(.*)\.php http://www.novosite.com.br/pagina-antiga/$1.php
#redirecionar tudo de um site para outro
RedirectMatch permanent /(.*) http://www.novosite.com/$1

Retirar extensões da URL

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html
#neste caso, estou retirando apenas o HTML

Forçar o uso do Charset UTF-8 para arquivos


  AddDefaultCharset UTF-8

Cache de navegador – Definir tempo de expiração (segundos)

   
ExpiresActive On   
ExpiresDefault "access plus 1 seconds"   
ExpiresByType text/html "access plus 1 seconds"   
ExpiresByType image/gif "access plus 2592000 seconds"   
ExpiresByType image/jpeg "access plus 2592000 seconds"   
ExpiresByType image/png "access plus 2592000 seconds"   
ExpiresByType text/css "access plus 604800 seconds"   
ExpiresByType text/javascript "access plus 216000 seconds"   
ExpiresByType application/x-javascript "access plus 216000 seconds" 
 

Cache de navegador – Definir controle de cache (segundos)

   
     
Header set Cache-Control "max-age=2592000, public"   
   
     
Header set Cache-Control "max-age=604800, public"   
   
     
Header set Cache-Control "max-age=216000, private"   
   
     
Header set Cache-Control "max-age=216000, public, must-revalidate"   
   
     
Header set Cache-Control "max-age=1, private, must-revalidate"   
 #desligar cache em arquivos php/html/htm  

Cache de navegador – Forçar o uso do cache, desabilitando o ETag

   
Header unset ETag 
 
FileETag None 

Adicionar novos mimetypes

AddType application/x-endnote-connection enz AddType application/x-endnote-filter enf AddType application/x-spss-savefile sav 

Desabilitar execução de certos Scripts

Options -ExecCGI
AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi

Alterar a linguagem Padrão

DefaultLanguage en-US

Alterar fuso horário padrão

SetEnv TZ America/Indianapolis

Forçar download de certos arquivos

AddType application/octet-stream .avi .mpg .mov .pdf .xls .mp4

Bloquear requisição baseado no user-agent

SetEnvIfNoCase ^User-Agent$ .*(craftbot|download|extract|stripper|sucker|ninja|clshttp|webspider|leacher|collector|grabber|webpictures) HTTP_SAFE_BADBOT
SetEnvIfNoCase ^User-Agent$ .*(libwww-perl|aesop_com_spiderman) HTTP_SAFE_BADBOT
Deny from env=HTTP_SAFE_BADBOT

Só lembrando que esses códigos não são inseridos em tags pelo painel de controle, e sim pelo FTP da hospedagem. Caso você não tenha acesso FTP ao seu site, você não conseguirá sequer criar um arquivo .htaccess
Eu vou postando novas utilidades conforme a necessidade. Atualizado última vez 21/09/2011
Lucas Peperaio

0 comentários:

Postar um comentário

 
Design by Wordpress Theme | Bloggerized by Free Blogger Templates | coupon codes