Arquivo de February, 2010

Por que o htaccess deve ser evitado?

Postado por Yoshio Iwamoto em 11/02/2010

No post anterior falei sobre o htaccess, o que é, como funciona e mais algumas dicas. Porém faltou dar uma explicação melhor desta citação sobre quando utiliza-lo:

Por questões de performance e segurança: NUNCA!!!!!!!!!!!!11...

Então, por que devemos evitar o uso do htaccess?

Performance

Se você utiliza o htaccess em seus diretórios então o Apache terá que verificar pela existência do ".htaccess" no diretório atual e em cada diretório superior e carregar estas configurações em runtime a cada vez que as páginas são requisitadas.

Mesmo sem existir nenhum arquivo ".htaccess" ainda haverá pequeno impacto na performance pois o Apache sempre verifica a existência deste arquivo nos diretórios.

Para não utilizar o htaccess e evitar estas verificações desabilite o AllowOverride (AllowOverride None) nas configurações principais do Apache.

Segurança

Quanto a segurança isto depende se é você ou não quem configura os ".htaccess" e/ou o Apache.

Batendo novamente na tecla, o htaccess deve ser utilizado quando se necessita aplicar regras por-diretório e não se possui permissão para alterar as configurações do servidor (e reiniciar o apache também :) ).

Normalmente esta é uma situação encontrada nas hospedagens, você pode hospedar suas páginas mas não pode alterar as configurações do servidor. É ai que entra o htaccess.

Permitindo o uso do htaccess neste caso, você basicamente está permitindo que o "usuário" (uma pessoa que provavelmente você não conhece, seja de conhecimentos técnicos ou caráter) configure o seu próprio:

<Directory ...>
...
</Directory>

Mas de qualquer forma a questão da segurança depende mais da capacidade da pessoa que está configurando o servidor para não deixar que os usuários façam "caquinhas".

Hypertext Access: htaccess

Postado por Yoshio Iwamoto em 9/02/2010

O "Hypertext Access" ou apenas "htaccess" é um arquivo (oculto) com diretrizes de configuração do servidor HTTP Apache que são aplicadas por diretório.

Basicamente o htaccess utiliza a mesma sintaxe do arquivo de configuração principal do Apache, porém obedece as regras estabelecida pela diretriz AllowOverride.

Para utiliza-lo crie um arquivo ".htaccess" no diretório onde você deseja que as regras sejam aplicadas e adicione dentro dele as diretrizes. As regras são aplicadas sem a necessidade de reiniciar o Apache.

Quando utilizar?

Por questões de performance e segurança: NUNCA!!!!!!!!!!!!11...

Obviamente se o htaccess existe é porque há um motivo. Utilize nas seguintes condições:

  • Se sua hospedagem não permitir alterações nas configurações principais do Apache (permissão).
  • Se você precisar permitir que seus usuários possam alterar as configurações do Apache (ex: servidor compartilhado), mas com uma certa limitação (hospedagem é um bom exemplo novamente).

De toda forma evite o uso do htaccess.

Dicas

As dicas abaixo funcionam não só no ".htaccess", mas também no arquivo de configuração principal do Apache (onde é mais recomendável).

Algumas dicas podem necessitar do módulo Mod-Rewrite habilidado.

301 Redirect

O "301 redirect" é a melhor forma de ser fazer um redirecionamento de uma página, além de Search Engine Friendly.

Exemplo 1: Redirecionando todo o website para um outro domínio

Redirect 301 / http://outrodominio.com.br/



Exemplo 2: Redirecionando uma página específica

Redirect 301 /pagina_de.html http://dominio.com.br/pagina_para.html



404 Redirect

Redirecionando erros 404, o famoso "Page not found" (Página não Encontrada), para uma outra página.

ErrorDocument 404 /pagina_404_customizada.html



O mesmo vale para redirecionar outras página de erro como 403, 500 e 666. o.O

DirectoryIndex

A diretriz "DirectoryIndex" permite escolher uma lista de recursos/páginas/arquivos que serão retornados para a requisição de um index de diretório. Se o arquivo index não for especificado será feita a listagem do diretório (se for permitido).

Por padrão é procurado pelo "index.html" (ou index.php ou outras extensões mais caóticas).

Exemplo:

  • De http://seudominio.com.br/ para http://seudominio.com.br/index.html
  • De http://seudominio.com.br/diretorio/ para http://seudominio.com.br/diretorio/index.html
DirectoryIndex index.html index.txt index.exe


Negando listagem de diretório

Já que eu comentei, para não permitir a listagem de diretórios adicione o seguinte comando no htaccess.

Options -Indexes


Mudando extensões dos arquivos

Se você quiser migrar/trocar suas páginas *.html para *.php poderá utilizar o seguinte comando.

RedirectMatch 301 (.*)\.html$ http://www.seudominio.com.br$1.php



Só fique esperto com o uso de iframes ;)

Tradução do Google

Traduz o site automaticamente através do Google Translate. Este até que é interessante (apesar de ainda não ter pensado em como poderá ser útil) e encontrei hoje no site da Dreamhost.

Fiz alterações para que seja de Português para outros idiomas e aviso que ainda não testei.

Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)-(en|es|it|jp|fr)$ http://www.google.com/translate_c?hl=$2&amp;sl=pt&amp;u=http://seudominio.com.br/$1 [R,NC]



Funciona da seguinte forma, quando alguém acessar "http://seudominio.com.br/-en" ele será traduzido de Português(pt) para Inglês(en) pelo Google Translate.

AccessFileName

Permite alterar o nome do arquivo htaccess (que por padrão é ".htaccess") para qualquer outra coisa como ".config". Esta diretriz na verdade deve ser utilizada no arquivo de configuração principal do Apache.

AccessFileName .config


Av. Conselheiro Nébias, 368A, Cj. 413
Vila Mathias - Santos - SP
Telefone: (13) 3345-4580

© 2008 - 2009 Stiod. Todos os direitos reservados.