Définition
Qu'est qu'un fichier .htaccess ?
Le but principal des fichiers .htaccess est de créer des protections de ressources par dossier. Avec les serveurs web modernes, il y a beaucoup plus de possibilités offertes par les fichiers .htaccess. Par exemple : pages d'erreurs personnalisées, contrôle d'accès basé sur les adresses IP, redirection automatique d'utilisateurs, empèchement de lister un dossier et l'utilisation de fichiers différents comme fichiers index.
Cas pratiques
Créer une page d’erreur personnalisée
ErrorDocument 401 /error/401.php
ErrorDocument 403 /error/403.php
ErrorDocument 404 /error/404.php
ErrorDocument 500 /error/500.php
Comment faire pour configurer le fuseau horaire sur votre serveur
SetEnv TZ Europe/Paris
Bloquer des adresses IP
allow from all
deny from 1.1.1.1.1
deny from 1.1.1.1.1
Redirections permanentes
Redirect 301 /mapage.html http://www.monsite.com/manouvellepage.html
Redirections de domaine
RewriteCond %{HTTP_HOST} ^www.mon-site.com [NC]
RewriteRule ^(.*)$ http://www.mon-site.fr/$1 [QSA,R=301]
E-mail de l’administrateur du serveur
ServerSignature EMail
SetEnv SERVER_ADMIN [email protected]
Protéger ses images
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?monsite.com/ [nc]
RewriteRule .*.(gif|jpg|png)$ http://www.monsite.com/images/images-de-substitution.jpg [nc]
Rendre tout un site indisponible pour maintenance
RewriteEngine on
RewriteRule maintenance.html - [L]
RewriteCond %{REMOTE_ADDR} !1.1.1.1.1
RewriteRule .* /maintenance.html [L]
Empêcher le listage des répertoires
Options All -Indexes
Page par défaut
DirectoryIndex contact.html
Protéger vos répertoires et fichiers
# Protéger un fichier
AuthType Basic
AuthName "Accès restreint"
AuthUserFile /home/path/.htpasswd
Require valid-user
# Protéger un répertoire
AuthType basic
AuthName "Accès restreint"
AuthUserFile /home/path/.htpasswd
AuthGroupFile /dev/null
Require valid-user
- dans le cadre d'un hébergement mutualisé, le terme "/home/path" devra être remplacé par : /var/www/domaine.com/htdocs/
- dans le cadre d'un hébergement cpanel, le terme "/home/path" devra être remplacé par : /home/IDCPANEL/public_html/
Masquer ou afficher les erreurs php
php_flag display_errors off
Procédure
Comment créer un fichier .htaccess ?
Créez un fichier texte sur votre ordinateur à l'aide d'un éditeur de texte standard (Notepad par exemple). Enregistrez le fichier sous le nom .htaccess.
Quelles sont les directives autorisées ?
-
AuthConfig : Directives d'autorisation (AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, Require, etc.).
-
Indexes : Directives de contrôle de l'indexation répertoire (AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName, etc.).
-
Limit : Directives contrôlant l'accès des hôtes (Allow, Deny and Order).
-
FileInfo : Directives contrôlant les types de documents (DefaultType, ErrorDocument, ForceType, LanguagePriority, SetHandler, SetInputFilter, SetOutputFilter, and mod_mime Add and Remove directives, etc.), document meta data (Header, RequestHeader, SetEnvIf, SetEnvIfNoCase, BrowserMatch, CookieExpires, CookieDomain, CookieStyle, CookieTracking, CookieName), directives mod_rewrite (RewriteEngine, RewriteOptions, RewriteBase, RewriteCond, RewriteRule) et and Action pour mod_actions.
La directive " Options" est désactivé : Si ce paramètre est présent dans votre fichier .htaccess, cela produira une erreur. Nous vous invitons donc à commenter toutes les lignes commençant par cette directive ( Ajouter un "#" en début de ligne. )
Toutefois, l'option "+FollowSymLinks" de la directive "Options" est active. Cette fonctionnalité est utilisée dans de nombreux CMS comme Joomla. Vous pouvez donc commenter la ligne associée à ce paramètre dans le fichier .htaccess sans soucis.