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