Register

💻 Tecnologia - May 20, 2017

Para que serve o arquivo .htaccess

Para que serve o arquivo .htaccess e o que é possível fazer com ele? Bom, de início você precisa saber que o .htaccess é um arquivo especial para o Apache. Quando um usuário está navegando por alguma página do seu site, para todo diretório que ele tentar acessar, o Apache procura primeiro pelo tal do arquivo .htaccess e se encontrar, verifica se existe alguma restrição ou configuração especial.

Com o .htaccess podemos controlar diversos parâmetros, tais como:

  • acesso restrito (com ou sem uso de senha);
  • páginas de erro padrão;
  • página padrão de acesso ao site;
  • redirecionar diretivas;
  • URLs amigáveis;
  • grande auxílio no SEO do site;
  • entre muitas outras funções;

Um arquivo .htaccess na pasta raiz de um site, ele atuará sobre todas as pastas deste. Mas, um arquivo .htaccess numa subpasta anula a ação do anterior passando a agir sobre essa pasta e suas subpastas.

Você consegue criar um arquivo .htaccess neste site. Se você busca soluções em hospedagem de sites, com preço acessível e um suporte técnico inigualável, visite a HostKing.

O que é possível fazer com .htaccess:

Redirecionamento de URL

A linha abaixo faz com que o site seja redirecionado para o site do Globo.

RedirectMatch ^/$ http://globo.com

A linha abaixo faz com que o usuário ao acessar o site SEM o WWW seja redirecionado para WWW.dominio.com.br

RewriteEngine on
RewriteCond %{HTTP_HOST} ^dominio.com.br [NC]
RewriteRule ^(.*)$ http://www.dominio.com.br/$1 [L,R=301]

Redirecionamento de HTTP para HTTPS

1º modo:

RewriteEngine on
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

2º modo:

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

Redirecionamento 301

Basta colocar o código abaixo em um arquivo .htaccess

redirect 301 /antigo/arquivo_antigo.htm http://www.seusite.com.br/aquivo_novo.htm

Restringindo o acesso por IP/Hostname

As vezes precisamos restringir certos arquivos e diretórios para certos IPs. Isso é válido por exemplo, quando você tem um provedor, e só se quer permitir acessar algumas páginas de administração os IPs da Intranet do provedor. Para isso pode-se aplicar estas regras no .htaccess.

Exemplos de bloqueios:

1. Para bloquear o acesso ao IP 127.1.1.1:

order allow,deny
deny from 127.1.1.1
allow from all

2. Para bloquear o acesso aos IPs 127.1.1.1 e 127.1.1.2 (vários IPs):

order allow,deny
deny from 127.1.1.1
deny from 127.1.1.2
allow from all

3. Para bloquear uma lista de IPs do tipo 127.12.x.x (range* de IP):

order allow,deny
deny from 127.12.0.0
allow from all

Atenção: Se, por exemplo, você usar 127.12.1.x, você estará bloqueando os IPs: 127.12.1.0, 127.12.1.1 etc até o 127.12.1.255.

Mensagens de Erro personalizadas

Vamos supor que você tenha uma sub-página no seu servidor, e queira que as mensagens de erro do servidor sejam bonitinhas e no formato que você criou. Para fazer isso, você precisará apenas saber o que significa cada código de erro do servidor e apontar para a uma página com o .htaccess:

ErrorDocument 401 /erros/falhaautorizacao.html
ErrorDocument 404 /erros/naoencontrado.html
ErrorDocument 403 /erros/acessonegado.html
ErrorDocument 500 /erros/errointerno.html

Mudar a página padrão

DirectoryIndex é a diretriz que permite especificar qual arquivo deve ser carregado quando chegar uma solicitação de diretório ou URL que não especifique uma página em particular (tipo http://www.hostnet.com). Normalmente a página default é index.html e a chamada do exemplo é transformada em http://www.hostnet.com/index.html.

Se você quiser mudar as regras do jogo, não tem problema:

DirectoryIndex adoropizza.html

Se o seu .htaccess estiver no diretório raiz, esta diretriz faz com que a página default de todos os diretórios do seu site passe a ser adoropizza.html. Tem mais. Se você quiser usar outras páginas (ou até scripts) como default, basta adicionar as referências a gosto:

DirectoryIndex adoropizza.html index.php home.htm index.cgi index.pl

A linha acima, se o arquivo .htaccess estiver no diretório raiz, faz com que a procura da página default siga a lista especificada: adoropizza.html é a primeira a ser procurada; se for encontrada, ela é enviada para o usuário e a procura para por aí; se não for encontrada, index.php é a próxima… e assim por diante, até index.pl. Caso nenhum dos arquivos relacionados seja encontrado, aí entra o famoso erro 404.

Lembre-se que todos os diretórios abaixo do diretório raiz obedecem as regras ditadas pelo primeiro .htaccess acima deles, a não ser que o diretório possua seu próprio .htaccess. Se não existirem outros .htaccess em subdiretórios, para todos os diretórios do site vale o .htaccess do diretório raiz – as páginas default serão sempre as mesmas.

Diretiva para X-Forwarded-Proto do Apache no uso de SSL

Alguns aplicativos usam a variável X-Forwarded-Proto do Apache para verificar se o site possui SSL habilitado. Para o funcionamento correto dessa variável, é necessário que seja colocada no arquivo .htaccess a seguinte linha:

SetEnvIf X-Forwarded-Proto https HTTPS=on