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;
Nota: Ao colocar 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.
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
Basta colocar o código abaixo em um arquivo .htaccess
RewriteEngine on RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,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
Habilitar cache via htaccess
Sempre que acessamos um site, o conteúdo disponível do mesmo tais como imagens, arquivos .css, arquivos .js, entre outros é baixado para o computador, permanecendo em uma área temporária até a página web ser encerrada.
A partir do primeiro acesso podemos instruir o navegador a guardar estes arquivos anteriormente baixados em um local chamado Cache e ainda definir o tempo em que esses arquivo ficarão armazenados.
Deste modo, ao acessar novamente o site, o navegador será instruído a buscar conteúdos diretamente do Cache. Caso ele não tenha nada armazenado no Cache ou o tempo de permanência tenha expirado, o processo voltará a ocorrer como se fosse um primeiro acesso, onde o navegador irá guardar novamente os arquivos em Cache.
Para realizar esse procedimento, insira as linhas de código abaixo dentro do arquivo .htaccess.
#Força a utilizar Cache-Control e Expires header <IfModule mod_headers.c> Header unset ETag </IfModule> FileETag None <IfModule mod_expires.c> ExpiresActive on ExpiresDefault "access plus 1 month" ExpiresByType text/cache-manifest "access plus 0 seconds" # Html ExpiresByType text/html "access plus 0 seconds" # Data ExpiresByType text/xml "access plus 0 seconds" ExpiresByType application/xml "access plus 0 seconds" ExpiresByType application/json "access plus 0 seconds" # Feed ExpiresByType application/rss+xml "access plus 1 hour" ExpiresByType application/atom+xml "access plus 1 hour" # Favicon ExpiresByType image/x-icon "access plus 1 week" # Media: images, video, audio ExpiresByType image/gif "access plus 1 month" ExpiresByType image/png "access plus 1 month" ExpiresByType image/jpg "access plus 1 month" ExpiresByType image/jpeg "access plus 1 month" ExpiresByType video/ogg "access plus 1 month" ExpiresByType audio/ogg "access plus 1 month" ExpiresByType video/mp4 "access plus 1 month" ExpiresByType video/webm "access plus 1 month" # HTC files ExpiresByType text/x-component "access plus 1 month" # Webfonts ExpiresByType application/x-font-ttf "access plus 1 month" ExpiresByType font/opentype "access plus 1 month" ExpiresByType application/x-font-woff "access plus 1 month" ExpiresByType image/svg+xml "access plus 1 month" ExpiresByType application/vnd.ms-fontobject "access plus 1 month" # CSS / JS ExpiresByType text/css "access plus 1 year" ExpiresByType application/javascript "access plus 1 year" ExpiresByType application/x-javascript "access plus 1 year" </IfModule>
Páginas Relacionadas
- Autorizar o gerenciamento da Hostnet na Clouflare para um determinado domínio
- Linux Containers (LXC)
- DNSSEC
- Whois
- Verificação de segurança no WebMail
- Instalador de Aplicativos
- Regras da Promoção 30 dias Grátis ou Cupom Promocional
- Redirecionamento de Domínios e Subdomínios no Painel de Controle
- Script de Envio de E-mail
- Tipos de Backup
Muito bom!