Existem vários use cases  em que existe a necessidade de utilizar certas funcionalidades do servidor web Apache. Algumas dessas necessidades são facilmente resolvidas recorrendo à utilização do ficheiro .htaccess presente na pasta root do vosso servidor web. Aqui listamos algumas das mais utilizadas.

Regras .htaccess

  • Redireccionar para o subdomínio www
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
  • Redireccionar para o domínio (sem www)
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.
RewriteCond %{HTTPS}s ^on(s)|off
RewriteCond http%1://%{HTTP_HOST} ^(https?://)(www\.)?(.+)$
RewriteRule ^ %1%3%{REQUEST_URI} [R=301,L]
  • Redireccionar de uma página para outra
Redirect 301 /antiga.php http://www.exemplo.com/nova.php
  • Forçar https
RewriteEngine on
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

<IfModule mod_headers.c>
    Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
</IfModule>
  • Bloquear IP’s individuais
## Apache 2.2
Order deny,allow
Allow from all
## IP a bloquear
Deny from 127.0.0.1

## Apache 2.4
Require all granted
## IP a bloquear
Require not ip 127.0.0.1
  • Impedir acesso a ficheiros ocultos
RewriteCond %{SCRIPT_FILENAME} -d [OR]
RewriteCond %{SCRIPT_FILENAME} -f
RewriteRule "(^|/)\." - [F]
  • Impedir acesso a determinado tipo de ficheiro
<FilesMatch "(\.(backup|zip|apk|exe)|~)$">
    ## Apache 2.2
    Order allow,deny
    Deny from all
    Satisfy All

    ## Apache 2.4
    Require all denied
</FilesMatch>
  • Impedir exploração do ficheiros e pastas
Options All -Indexes
  • Impedir acesso exterior de imagens
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://(.+\.)?example.com [NC]

RewriteRule \.(jpe?g|png|gif|bmp)$ - [NC,F,L]
## ou apresentar uma imagem por defeito
RewriteRule \.(jpe?g|png|gif|bmp) http://exemplo.com/imagem.png [R,L]
  • Páginas de erro
ErrorDocument 500 /500.html
ErrorDocument 401 /401.html
ErrorDocument 404 /404.html
There are currently no comments.