• Olá Visitante, se gosta do forum e pretende contribuir com um donativo para auxiliar nos encargos financeiros inerentes ao alojamento desta plataforma, pode encontrar mais informações sobre os várias formas disponíveis para o fazer no seguinte tópico: leia mais... O seu contributo é importante! Obrigado.

Dicas .htaccess

maar3amt

Administrator
Team GForum
Entrou
Set 19, 2006
Mensagens
7,803
Gostos Recebidos
28
Com o .htaccess é possível fazer coisas extremamente úteis e importantes.

Vamos deixar aqui alguns exemplos práticos de utilização do .htaccess.

Para mencionar, o ficheiro .htaccess deve ser encontrado no root do seu website.


1 - Prevenir hotlinks

Com este código vai impedir que o seu servidor disponibilize imagens em outros websites.
Quantas vezes você fica surpreso ao encontrar imagens hospedadas no seu servidor em outros domínios? Com isto evita também o consumo desnecessário de largura de banda (bandwidth).
Adicione as seguinte linhas de código no fundo do seu ficheiro .htaccess

Options +FollowSymlinks RewriteEngine On
#Proteger contra hotlinking
RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www.)?domainname.com/ [nc] RewriteRule .*.(gif|jpg|png)$ http://domainname.com/img/stop_stealing_bandwidth.gif[nc]
Leia mais sobre o assunto (em Inglês).
Link Building Secrets by Maurizio Petrone




2 - Bloquear todas as requisições de certos "User Agents".

Existem certos spiders, programas, bots etc que não interessa a sua visita, pode com o .htaccess manter os mesmos longe do seu domínio.
Não vai querer desperdiçar recursos com visitas desnecessárias ou mesmo perigosas.

#Bloquer bots SetEnvIfNoCase user-Agent ^FrontPage [NC,OR] SetEnvIfNoCase user-Agent ^Java.* [NC,OR] SetEnvIfNoCase user-Agent ^Microsoft.URL [NC,OR] SetEnvIfNoCase user-Agent ^MSFrontPage [NC,OR] SetEnvIfNoCase user-Agent ^Offline.Explorer [NC,OR] SetEnvIfNoCase user-Agent ^[Ww]eb[Bb]andit [NC,OR] SetEnvIfNoCase user-Agent ^Zeus [NC] <limit get="" post="" head=""> Order Allow,Deny Allow from all Deny from env=bad_bot </limit>


3 - Redireccionar toda a gente excepto determinado(s) ip(s).

Muitas pessoas queriam sites para uso pessoal, familiar etc.
Com este código vai permitir que só determinados ip's acessem o sistema, tudo o resto será bloqueado.

ErrorDocument 403 http://www.domainname.com Order deny,allow Deny from all Allow from 124.34.48.165 Allow from 102.54.68.123
Com o código acima só os ip's 124.34.48.165 e 102.54.68.123 teriam acesso ao sistema, todos os outros utilizadores iriam ver uma mensagem de erro "403".




4 - Redireccionamentos permanentes 301 (SEO friendly)

Por questões das mais variadas naturezas, por vezes precisamos de alterar um artigo, conteúdo de pasta ou mesmo domínio! Certo?
Com este código podemos fazer isso sem que sejamos penalizados pelos motores de busca. Os utilizadores serão redireccionados para a nova localização, e ao mesmo tempo os motores de busca são informados que o conteúdo mudou de direcção permanentemente.



5 - Criar as suas páginas de erro personalizadas

Com este código pode personalizar as suas páginas de erro como bem entender.
Lembra-se daqueles erros "404 Página não disponível"?
Com este pode alterar os default por umas criadas por si, mais intuitivas etc.

ErrorDocument 401 /error/401.php ErrorDocument 403 /error/403.php ErrorDocument 404 /error/404.php ErrorDocument 500 /error/500.php


6 - Crie uma lista de ip's banidos

É verdade, também pode utilizar o .htacces para banir os visitantes por ip.

allow from all deny from 145.186.14.122 deny from 124.15
Repare que no exemplo acima foi banido um ip "145.186.14.122" e um range de ip's "124.15", todos os ip's começados por "124.15" não podem aceder ao seu sistema.




7 - Altere o email de contacto administrativo em caso de erro

Por vezes os servidores com problemas mostram uma mensagem de erro, informando que o sistema está com problemas onde mostram um contacto administrativo.
Este endereço que está por defaul nas configurações, pode facilmente ser alterado.

ServerSignature EMail SetEnv SERVER_ADMIN default@domain.com


8 - Desabilitar o prompt de downloads

Normalmente quando um utilizador tenta efectuar o download de um ficheiro do seu servidor, é questionado se quer guardar ou abrir o ficheiro, com este comando esse prompt não será mostrado.

AddType application/octet-stream .pdf AddType application/octet-stream .zip AddType application/octet-stream .mov


9 - Proteger o acesso directo a determinados ficheiros (por segurança)

Por vezes temos ficheiros que contém passwords ou dados de relativa importância que não pretendemos que sejam públicos.

Com o seguinte código, podemos impedir que os mesmos sejam acessados.

O exemplo dos ficheiros .htaccess:

#Proteger o ficheiro .htaccess <files .htaccess=""> order allow,deny deny from all </files>


10 - Comprimir componentes web com o mod_deflate

Este é uma forma de comprimir ficheiros estáticos no servidor, uma alternativa ao mod_gzip.

<ifmodule mod_deflate.c=""> <filesmatch ".(js|css)$"=""> SetOutputFilter DEFLATE </filesmatch> </ifmodule>
O exemplo acima irá comprimir todos os ficheiros .js e .css
 

maar3amt

Administrator
Team GForum
Entrou
Set 19, 2006
Mensagens
7,803
Gostos Recebidos
28
11 - Adicione Expire Headers

Com este código permite informar os browsers dos utilizadores de quanto tempo é que determinado objecto.
Podemos reduzir drasticamente o consumo de recursos da máquina.
Este sistema é indicado para objectos estáticos como: imagnes, css, js etc

<filesmatch ".(ico|pdf|flv|jpg|jpeg|png|gif|swf)$"=""> Header set Expires "Wed, 21 May 2012 20:00:00 GMT" </filesmatch>
Indica aos browsers que possivelmente os ficheiros ico,pdf,flv,jpg,jpeg,png,gif e swf não foram alterados e que o browser pode utilizar a cache para os mostrar.




12 - Defina a página inicial

Por norma um servidor web trás por defaul as páginas inicias como: index.html,index.htm ficando todas as restantes irreconheciveis se não acessadas directamente.
Com este código poderá dizer ao servidor que a sua página inicial é diferente como por exemplo: site.html

#Informar um página inicial alternativa
DirectoryIndex site.html




13 - Proteger ficheiros ou pastas por password

Com este código permite-lhe criar um simples sistema de login para proteger determinados ficheiros ou pastas.

#Proteger ficheiro com password <files secure.php=""> AuthType Basic AuthName "Prompt" AuthUserFile /home/path/.htpasswd Require valid-user </files> # Proteger pasta com password AuthType basic AuthName "This directory is protected" AuthUserFile /home/path/.htpasswd AuthGroupFile /dev/null Require valid-user
Você precisa criar um ficheiro .htpasswd, existem vários sites para o efeito.
Deixo um deles: Htpasswd Generator - Create a htpasswd password




14 - Redireccionar o domínio antigo para um novo domínio


Por vezes é necessário uma mudança de domínio, com este código vai permitir que mude de domínio sem que perca ou seja penalizado pelos motores de busca.

#Redireccionar do domínio antigo para o novo domínio RewriteEngine On RewriteRule ^(.*)$ http://www.domainname.com/$1 [R=301,L]
 
Topo