- O que é .htaccess?
- exemplos de .htaccess
- Redirecionar usuários para uma página de erro específica
- Adicionando um cabeçalho personalizado e valor
- Bloquear usuários baseado em IP
- Blocking referrers (hotlink protection)
- Adicionando tipos MIME
- Alavancando o cache do navegador
- Ativar Gzip
- Denying HTTP request methods
- Executar 301 redirecionamentos
- Ativar CORS
O que é .htaccess?
O arquivo .htaccess
(também conhecido como arquivo Hypertext Access) é usado para definir configurações específicas para servidores web rodando no Apache. Este arquivo de configuração afeta o diretório em que ele está armazenado, bem como todas as subdiretórios dentro desse diretório. Por exemplo, se o arquivo .htaccess
estiver localizado dentro de seu diretório raiz, ele afetará o site inteiro. Por outro lado, se o arquivo estiver localizado em um diretório específico, ele só afetará esse diretório e quaisquer subdiretórios dentro dele.
algumas plataformas CMS como WordPress e Drupal também vêm com arquivos .htaccess
para permitir que você especifique certas configurações que são aplicáveis apenas a esse site. O arquivo .htaccess
pode ser usado para alcançar uma variedade de coisas, incluindo:
- Redirecionamentos de desempenho
- Páginas de erro personalizadas
- Restrição de usuários baseada em IP
- Adicionar tipos MIME
- Configurar cabeçalhos HTTP
- Senha protegendo certas pastas
O arquivo .htaccess
pode ser usado para conseguir muito mais, no entanto a lista acima está entre os usos mais populares de .htaccess
. A seção abaixo irá delinear vários exemplos de .htaccess
e como eles podem ser usados dentro do seu próprio site.
exemplos de .htaccess
Exemplos de configuração que podem ser alcançados dentro do arquivo .htaccess
. A lista abaixo é alguns dos exemplos mais utilizados.
Redirecionar usuários para uma página de erro específica
Baseado no código de status que um determinado arquivo ou página retorna, você pode redirecionar o usuário para uma página de erro personalizada. O exemplo abaixo mostra algumas variações que você pode usar. Cada uma delas depende do código de status que é retornado.
ErrorDocument 403 /forbidden.htmlErrorDocument 404 /notfound.htmlErrorDocument 500 /servererror.html
Adicionando um cabeçalho personalizado e valor
Cabeçalhos HTTP personalizados também podem ser adicionados através do arquivo .htaccess
. Existem algumas opções de sintaxe, tais como set
que irá substituir qualquer cabeçalho anterior que tenha o mesmo nome, add
que irá adicionar o cabeçalho mesmo que exista outro com o mesmo nome. Visite o guia de cabeçalho da página do Apache para saber mais.
Header set X-Custom "Custom Value"
No exemplo acima, o texto X-Custom
corresponde ao cabeçalho HTTP que será retornado na resposta HTTP enquanto o texto Custom Value
corresponde ao valor para este cabeçalho em particular.
Bloquear usuários baseado em IP
Para fins de segurança, você pode bloquear usuários baseado em seu IP dentro do arquivo .htaccess
. No exemplo abaixo, há dois IPs que são bloqueados. Podemos também decidir não incluir o último dígito do endereço IP que resultará no bloqueio de todos os IPs que contenham os três primeiros dígitos.
order allow,denydeny from 255.x.x.xdeny from 123.x.x.xallow from all
Blocking referrers (hotlink protection)
Blocking referrers, também conhecido como hotlink protection, é um método usado para bloquear certos referrers de referenciar os ativos do seu website e assim roubar a sua largura de banda. Use o snippet abaixo para definir quais domínios não são permitidos a referenciar o seu conteúdo e assim eles receberão um erro 403 Forbidden
.
RewriteCond %{HTTP_REFERER} unwanteddomain\.com RewriteCond %{HTTP_REFERER} unwanteddomain2\.comRewriteRule .* -
Funcionalidade semelhante também pode ser obtida através do painel de controle KeyCDN. Para saber como implementar a protecção hotlink na sua Zona KeyCDN, visite o nosso guia de Indicadores de Zona.
Adicionando tipos MIME
TiposMIME definem a que se refere uma extensão de ficheiro em particular. Portanto, às vezes é necessário definir isso em seu arquivo .htaccess
para informar ao servidor web a que tipo de arquivo você está se referindo. Para ver uma lista completa de tipos MIME visite a lista de tipos MIME.
AddType image/gif .gif .GIF
O arquivo .htaccess
também pode ser usado para ajudar a melhorar o desempenho do site, alavancando o cache do navegador. Cada tipo de arquivo pode ser definido com um determinado valor de expiração. Você pode definir uma lista personalizada de tipos de arquivo e alterar cada um de seus valores de expiração, entretanto o seguinte trecho é um bom ponto de partida.
## EXPIRES CACHING ##<IfModule mod_expires.c> ExpiresActive On ExpiresByType image/jpg "access 1 year" ExpiresByType image/jpeg "access 1 year" ExpiresByType image/gif "access 1 year" ExpiresByType image/png "access 1 year" ExpiresByType text/css "access 1 month" ExpiresByType text/html "access 1 month" ExpiresByType application/pdf "access 1 month" ExpiresByType text/x-javascript "access 1 month" ExpiresByType application/x-shockwave-flash "access 1 month" ExpiresByType image/x-icon "access 1 year" ExpiresDefault "access 1 month"</IfModule>## EXPIRES CACHING ##
Ativar Gzip
Ativar Gzip em seu servidor de origem ajuda a melhorar a performance de seus ativos à medida que eles são comprimidos e, portanto, podem ser entregues mais rapidamente. Você pode definir uma lista personalizada de tipos MIME a serem compactados, porém o exemplo abaixo é um bom ponto de partida. Para saber mais sobre os benefícios do Gzip e como ele funciona, leia nosso artigo Enable Gzip Compression.
<IfModule mod_deflate.c> AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/vnd.ms-fontobject AddOutputFilterByType DEFLATE application/x-font AddOutputFilterByType DEFLATE application/x-font-opentype AddOutputFilterByType DEFLATE application/x-font-otf AddOutputFilterByType DEFLATE application/x-font-truetype AddOutputFilterByType DEFLATE application/x-font-ttf AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE font/opentype AddOutputFilterByType DEFLATE font/otf AddOutputFilterByType DEFLATE font/ttf AddOutputFilterByType DEFLATE image/svg+xml AddOutputFilterByType DEFLATE image/x-icon AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE text/javascript AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/xml</IfModule>
Denying HTTP request methods
Existem vários métodos de requisição HTTP que são usados para alcançar vários resultados. Se existem certos métodos HTTP que você não quer que um usuário utilize em seu site, você pode negar com .htaccess
.
RewriteCond %{REQUEST_METHOD} !^(HEAD|OPTIONS|POST|PUT)RewriteRule .* -
Executar 301 redirecionamentos
Se você precisar executar um redirecionamento 301
para uma página que foi movida, isto pode ser facilmente alcançado com .htaccess
. Basta usar o snippet abaixo que pega a primeira URL (link antigo) e a redireciona para a segunda URL (link novo).
Redirect 301 https://yourwebsite.com/old-page https://yourwebsite.com/new-page
Ativar CORS
Ativar CORS é crucial para a entrega de ativos estáticos em várias origens. O seguinte trecho pode ser adicionado ao seu arquivo .htaccess
a fim de permitir que todas as origens compartilhem recursos. Caso contrário, se isso não estiver ativado e sua origem estiver solicitando recursos de outra origem, você receberá um erro CORS. Leia mais sobre CORS em nosso artigo Como Usar CORS.
<IfModule mod_headers.c> <FilesMatch "\.(ttf|ttc|otf|eot|woff|font.css|css|js|gif|png|jpe?g|svg|svgz|ico|webp)$"> Header set Access-Control-Allow-Origin "*" </FilesMatch></IfModule>
Os exemplos acima .htaccess
são um ótimo ponto de partida para aqueles que ainda não estão familiarizados com o uso de .htaccess
, mas ainda querem realizar certas configurações de servidor web. O ficheiro .htaccess
tem a capacidade de executar uma série de tarefas e é bastante flexível para se adaptar às necessidades do seu website. Embora estes .htaccess
exemplos sejam um ótimo ponto de partida, você pode estar procurando executar algumas configurações mais avançadas .htaccess
. Para mais informações sobre este tópico considere verificar o AskApache’s .htaccess
file guide article.