.htaccess

Já reparou que na sua pasta public_html tem um ficheiro estranho chamado .htaccess ? Não, não é uma extensão como muitos julgam, é um ficheiro de texto simples com informações particulares e que permitem fazer e definir algumas propriedades. O . antes do nome do ficheiro vem do facto de em sistemas Unix esta ser a definição de ficheiro oculto do sistema.

Este ficheiro quando transferido tem que ser feito em modo ASCII e com o CHMOD 644 (RW-R-R). É um ficheiro para ser lido somente pelo apache (o nosso servidor) e afecta todas as pastas nos sub-niveis (ou seja se estiver em ../public_html/ afectará www.oseusite.com assim como www.oseusite.com/pasta e www.oseusite.com/pasta/subpasta, etc).

Exemplos

a)Documento de erro:
Existem vários erros com os quais o apache pode lidar. Aqui fica o exemplo de como lidar com o erro 404 (página não encontrada)
Sintaxe: ErrorDocument code /directory/filename.ext

Exemplo:
ErrorDocument 404 /pasta/naoencontrado.html

Quando existir um erro 404 os utilizadores serão direccionados para www.oseusite.com/pasta/naoencontrado.html . Poderá usar qualquer pasta e qualquer ficheiro para este efeito.

b)Bloquear Utilizadores por IP
Se tiver um spammer a incomodar poderá bloquea-lo pelo seu ip. Basta copiar esta secção e modificar pelos ip's que o perturbam

order allow,deny
deny from xxx.xxx.xxx.xxx
deny from xxx.xxx.xxx.xxx
allow from all

c)Bloquear visitas de outro site
Caso exista alguém a consumir o seu tráfego na imagem X.jpg ou o seu ficheiro CSS poderá bloquea-lo. Copie esta secção e modifique os sites:

RewriteEngine on
# Options +FollowSymlinks
RewriteCond %{HTTP_REFERER} site1\.com [NC,OR]
RewriteCond %{HTTP_REFERER} site2\.com [NC,OR]
RewriteCond %{HTTP_REFERER} site3\.com
RewriteRule .* - [F]

Antes do ponto terá que usar o \ para que o ponto seja considerado parte do site e não parte de algo a intrepertar. [NC] indica que não é 'case sensitive' (indiferente a maiusculas e minusculas). A última linha indica ao apache o que fazer caso as condições sejam verdadeiras, neste caso dá o erro 403 (proibido).

d)Alterar a página por default
Felizmente não é obrigado a utilizar o index.html como página default.
Sintaxe: DirectoryIndex default.html default.cgi index.php index.htm

Exemplo:
DirectoryIndex empiresp.php empiresp.html

O visitante ao ir a www.oseusite.com será redireccionado para www.oseusite.com/empiresp.php e se esta página não existir a www.oseusite.com/empiresp.html

e)Redireccionamentos
Se modificou o seu site e não quer que os visitantes andem perdidos poderá usar a seguinte linha

Redirect /pasta_antiga/ficheiro.html http://oseusite.com/novapasta/novoficheiro.html

Redirecciona o utilizador que vai da página antiga para a nova

Redirect /pasta_antiga http://oseusite.com/novapasta/

Redirecciona qualquer ficheiro pedido à pasta_antiga para a novapasta.

Como é obvio existem muitas mais funções disponíveis aqui ficam apenas alguns exemplos.
Poderá ler mais sobre o assunto em inglês
@http://httpd.apache.org/docs/1.3/mod/directives.html
@http://httpd.apache.org/docs/

Baseado no tutorial http://www.javascriptkit.com/howto/htaccess.shtml

Esta resposta foi útil? 10 Utilizadores acharam útil (19 Votos)