Quando o php está configurado no domínio para executar como CGI ou FastCGI, as directivas do php.ini normal não são consideradas, pelo que, é necessário usar um ficheiro .htaccess para as configurar conforme as suas necessidades.
A partir de um ficheiro .htaccess a colocar junto dos restantes ficheiros do site, pode configurar vários parâmetros do php.
Aumentar o tamanho de upload de ficheiros permitido:
O valor padrão é de 2Mb. O exemplo mostra como aumentar para 10Mb; a directiva post_max_size deverá ser sempre o dobro do tamanho do upload_max_filesize:
php_value upload_max_filesize 10M php_value post_max_size 20M
Esta directiva configura a memória a usar:
php_value memory_limit 32M
Este ficheiro pode igualmente ser usado para outras configurações, como seja a alteração do nome da página inicial do site, configurar caching, etc.
Os exemplos abaixo são para ser usados com qualquer modo de execução do php.
Alterar a página inicial do site:
DirectoryIndex nomedoficheiro.html
Redireccionamento de um ficheiro movido para outro domínio:
Redirect 301 /d/file.html http://www.dominio.com/r/file.html
Redireccionar multiplos ficheiros, como blog/this.php?gc
RedirectMatch 301 /blog(.*) http://www.askapache.com/$1
Redireccionar para outro domínio:
Redirect 301 / http://www.newdomain.com
Aumentar dramaticamente a velocidade do site, implementando Caching:
# MONTH
<FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf)$">
Header set Cache-Control "max-age=2592000"
</FilesMatch>
# WEEK
<FilesMatch “.(js|css|pdf|txt)$”>
Header set Cache-Control “max-age=604800”
</FilesMatch>
# DAY
<FilesMatch “.(html|htm)$”>
Header set Cache-Control “max-age=43200”
</FilesMatch>
Adicionar tag “en-US” e “text/html;UTF-8” aos headers,sem meta tags:
AddDefaultCharset UTF-8
Usando a Directiva Files:
# Or AddType 'text/html; charset=UTF-8' html
DefaultLanguage en-US
<Files ~ ".(htm|html|css|js|php)$">
Proteger um ficheiro com password:
AddDefaultCharset UTF-8
DefaultLanguage en-US
</Files>
<Files login.php>
Proteger multiplos ficheiros por password:
AuthName "Prompt"
AuthType Basic
AuthUserFile /home/askapache.com/.htpasswd
Require valid-user
</Files>
<FilesMatch "^(exec|env|doit|phpinfo|w).*$">
AuthName "Development"
AuthUserFile /.htpasswd
AuthType basic
Require valid-user
</FilesMatch>