Table des matières

Syntaxe utile

Voici des exemples simples de fichier .htaccess :

Activer le parcours de repertoire

apache
Options +Indexes
## Bloque l'affichage de quelques type de fichier
IndexIgnore *.wmv *.mp4 *.avi

Désactiver le parcours de repertoire

apache
Options All -Indexes

Personaliser les page d'erreur

apache
ErrorDocument 403 /interdit.html
ErrorDocument 404 /non_trouve.html
ErrorDocument 500 /erreur_serveur.html

Faire marcher le SSI avec l'HTML/SHTML

apache
AddType text/html .html
AddType text/html .shtml
AddHandler server-parsed .html
AddHandler server-parsed .shtml
# AddHandler server-parsed .htm

Changer la page par defaut (l'ordre est respecté)

apache
DirectoryIndex myhome.htm index.htm index.php

Bloquer l'acces au site à certaine personne

apache
<limit GET POST PUT>
order deny,allow
deny from 202.54.122.33
deny from 8.70.44.53
deny from .spammers.com
allow from all
</limit>

Autorisez uniquement les acces LAN

apache
order deny,allow
deny from all
allow from 192.168.0.0/24

Rediriger l'internautre vers une nouvelle page/nouveau repertoire

apache
Redirect oldpage.html http://www.domainname.com/newpage.html
Redirect /olddir http://www.domainname.com/newdir/

Bloquer l'acces au site à certain referer

apache
RewriteEngine on
RewriteCond %{HTTP_REFERER} site-to-block\.com [NC]
RewriteCond %{HTTP_REFERER} site-to-block-2\.com [NC]
RewriteRule .* - [F]

Bloquer le hot linking et le Bandwidth hogging

apache
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com/.*$ [NC]
RewriteRule \.(gif|jpg)$ - [F]

Pour rajouter un petit message dans le genre de “Voler c'est mal”
Ajoutez cette ligne apres le code du bloquage des hot link :

apache
RewriteRule \.(gif|jpg)$ http://www.mydomain.com/dontsteal.gif [R,L]

où http://www.mydomain.com/dontsteal.gif pointe sur votre image message.

Interdire la lecture et l'afficage d'un fichier

apache
<files file-name>
#file-name est le nom de votre fichier
order allow,deny
deny from all
</files>

Eviter l'erreur 500

apache
# Eviter l'erreur 500 en spécifiant l'encodage
AddDefaultCharset utf-8

Donner les acces CGI a un répertoire

apache
Options +ExecCGI
AddHandler cgi-script cgi pl
# Pour activer tous les script d'un répertoire utliser la ligne suivante :
# SetHandler cgi-script

Preserver la bande passante

apache
# Uniquement avec php
<ifmodule mod_php4.c>
php_value zlib.output_compression 16386
</ifmodule>

La vérification de syntaxe

De Jens Meiert: CheckSpelling corrige certainne erreur, comme par exemple si l'internautre a oublier un 'r' dans le nom de page.

apache
CheckSpelling On

Protéger un répertoire

apache
# la ligne suivante permet de définir l'adresse du fichier text comprenant les login et mot de passe
PerlSetVar AuthFile dossier/passlist.txt
AuthName "Acces Restreint" 
AuthType Basic
 
<limit GET POST>
require valid-user 
</limit>

Protéger une page

apache
<files mapage.htm>
PerlSetVar AuthFile dossier/passlist.txt
AuthName "Acces Restreint" 
AuthType Basic
 
<limit GET POST>
require valid-user 
</limit> 
</files>

Source

Traduction de : http://www.thejackol.com/htaccess-cheatsheet/