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