41Mag - Le guide du fichier .HTACCESS

Le guide du fichier .HTACCESS

Découvrez les fonctions étonnantes du fichier .HTACCESS. Notre guide complet vous présente toute les fonctions, parfois méconnus, de ce fichier. Vous pourrez restreindre l’accès à un fichier ou à un dossier, afficher vos propres pages d’erreur, rediriger vos pages et empêcher l’accès à certain type de fichier.

Très facile à éditer, depuis le bloc-note de windows ou notepad++ – TextWranggler est une alternative gratuite à notePad++ pour Mac – le fichier .HTACCESS s’avère très pratique lorsqu’il s’agit par exemple de restreindre l’accès à certains dossiers ou pages de votre site internet.

Imaginez que votre site possède un BackOffice ou bien que certaines pages contiennent des données sensibles, ces pages ou dossiers ne doivent pas être accessible pour tous vos visiteurs … C’est là qu’intervient le fichier .HTACCESS. Vous pourrez aussi rediriger des URLs ou bien changer votre page d’accueil, pour afficher une publicité avant votre fichier index.html par exemple.

ATTENTION, certains hébergeurs gratuits ne permettent pas l’utilisation du fichier .HTACCESS

Restreindre l’accès à un fichier ou à un dossier par grâce à un mot de passe

Créer un fichier .htaccess

Pour commencer, il va donc falloir créer le fichier .htaccess, rien de plus simple, il vous suffit juste d’ouvrir le bloc note windows ou bien Notepadd++ que nous vous recommandons d’utiliser. Une fois ouvert, vous allez entrer 4 lignes de commandes que nous allons vous détaillé :

1
2
3
4
AuthName "Message à afficher"
AuthUserFile "/home/41mag/www/admin/.htpasswd"
AuthType Basic
Require valid-user

Pour que ces lignes de commandes vous soient utiles, il va falloir modifier 2 valeurs.

AuthName : C’est le texte qui s’affichera dans la boite de dialogue qui invite l’utilisateur à inscrire son login et son mot de passe. Vous pouvez changer ce texte comme vous le souhaitez.
AuthUserFile : là c’est plus délicat, c’est le chemin absolu vers le fichier .htpasswd (à placez dans le même répertoire que le .htaccess).

Pour connaitre le chemin absolu, il existe une fonction PHP qui vous le donne. il vous suffis de créer un fichier PHP que vous placerez au même endroit que vos fichier .htaccess et .htpasswd.

Ecrivez la ligne de code ci-dessous à l’intérieur du fichier que vous venez de créer. Appelez par exemple chemin_absolu.php :

1
<?php echo realpath('chemin.php'); ?>

Il ne vous reste plus qu’a uploader le fichier chemin_absolu.php sur votre site et l’ouvrir à l’aide de votre navigateur. Sur cette page s’affichera une ligne du genre :

1
/home/crea-troyes/www/admin/chemin_absolu.php

Remplacez à la fin de cette ligne chemin_absolue.php par .htpasswd et voila, vous avez l’adresse exact de votre chemin absolu.

Copiez ce chemin absolu dans la deuxième ligne de commande de votre fichier .htaccess après AuthUserFile.

Sauvegardez le fichier en le nommant htaccess sans le point au début. Pourquoi ? c’est tout simple, windows ne veut pas que l’on enregistre des nom de fichier commençant par un point « . ». Une petite astuce toute simple et d’uploader le fichier sur votre site avec votre client FTP et de le renommer à partir de celui ci. Grossièrement, renommez-le « .htaccess » depuis votre site.

Créer un fichier .htpasswd

Le .htpasswd contient la liste des personnes autorisées à accéder aux pages du dossier. Attention à ne mettre qu’une seule personne par ligne de la forme :

1
2
3
4
 
login:mot_de_passe_crypté
 
VOTRE_PSEUDO:$7$dsDs87MEqT//cb$hAVW/wDlIfQ81

Comme vous avez pu le remarquez le mot de passe n’est ni bizarre, ni extrement long mais tout simplepment crypté. Pour crypter votre mot de passe, encore une fois, nous allons avoir recours au php, en utilisant la fonction crypt.

1
<?php echo crypt('VOTRE_MOT_DE_PASSE'); ?>

Ensuite il ne vous restera plus qu’à mette vos fichier .htaccess et .htpasswd sur votre serveur et à les tester.

Empêcher l’accès à un fichier ou à un dossier

Restreindre l’accès à un ou plusieurs fichier

Par défaut, les restrictions du fichier .htaccess s’appliquent à l’ensemble des fichiers du dossier et des sous-dossiers dans lequel il se trouve.

Il vous est possible de ne restreindre l’acces qu’à un ou plusieur fichier uniquement. Dans l’exemple ci-dessous, les restrictions ne s’appliquent qu’aux fichiers admin.php et liste_emails.php.

Il faut utiliser une seule balise par fichier.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<Files admin.php>
AuthUserFile /repertoire_du_fichier/.htpasswd
AuthName "Accès sécurisé aux donnees sensible de votre site"
AuthType Basic
<LIMIT GET POST>
require user VOTRE_PSEUDO
</LIMIT>
</Files>
 
<Files liste_emails.php>
AuthUserFile /repertoire/de/votre/fichier/.htpasswd
AuthName "Accès sécurisé aux donnees sensibles de votre site"
AuthType Basic
<LIMIT GET POST>
require user VOTRE_PSEUDO
</LIMIT>
</Files>

Empêcher l’accès à un type de fichiers par un domaine

Dans l’exemple suivant, toutes les requêtes provenant du domaine NomDuDomaine.fr ne pourront avoir accès aux images, dont l’extension est en .jpg

1
2
3
4
<Files *.jpg>
Order Deny, Allow
Deny from .NomDuDomaine.fr
</Files>

Autoriser l’accès à un domaine ou un pays

Dans l’exemple ci-dessous, toutes les requêtes provenant du domaine 41mag.fr ou des domaines ayant l’extension .fr auront accès aux fichiers images avec l’extensions en .jpg.

1
2
3
4
5
6
7
<Files jpg*>
Order Allow, Deny
Deny from all
Allow from .41mag.fr
Allow from .fr
</Files>
</em>

Sécuriser l’accès par une IP

Dans le but de securisé toujours plus, l’exemple ci-dessous ne rend possible l’accès que pour l’utilisateur MON_PSEUDO à partir de son adresse IP 000.00.000.0 et de son mot de passe :

1
2
3
4
5
6
7
8
9
10
ErrorDocument 403 /erreurs/403.php
AuthUserFile /repertoire/de/votre/fichier/.htpasswd
AuthName "Accès sécurisé aux donnees sensibles de votre site"
AuthType Basic
<LIMIT GET POST>
order deny,allow
deny from all
allow from 000.00.000.0
require user MON_PSEUDO
</LIMIT>

Redirection et customisation des pages d’erreurs

il existe différent type d’erreurs :

  • 400 : La requête est mauvaise ou la syntaxe est fausse
  • 401 : Le page demande une identification
  • 402 : L’accès est payant
  • 403 : Accès interdit
  • 404 : L’adresse est introuvable, elle a changé ou n’existe pas

Consultez La liste complète des erreurs de serveurs

L’erreur 404 étant la plus fréquente, nous nous intéresseront plus particulièrement à celle-ci, mais sachez que pour les autres erreurs de serveur, la procédure est la même. Voici la marche à suivre pour personnaliser ses pages d’erreurs :

1
ErrorDocument (code à 3 chiffres de l'erreur [url de la page d'erreur])

Dans la lignes suivantes, nous allons rediriger les erreurs 404 vers la pages 404.php du dossier erreurs se situant à la racine de notre site :

1
ErrorDocument 403 /erreurs/403.php3

Définir les extensions de fichiers par défaut

Cette commande vous permet de définir la facon dont votre navigateur interpretra des fichiers face à des extensions lui étant inconnues. la syntaxe est la suivante :

1
DefaultType (mime/type)

Dans l’exemple ci-dessous, il prendra tout fichier inconnu en tant que document HTML :

1
DefaultType text/html

Dans l’exemple ci-dessous, il forcera l’affichage des extensions en .php en .html :

1
2
3
<Files *.php>
ForceType text/html
</Files>

Redirection de page, dossier ou domaine

Changement de la page d’accueil

La page se nommant par défaut index.html ou index.php est la page d’accueil de votre site, elle se trouve à la racine de celui-ci. Pour remplacer cette page par une autre page sans changer leur nom, il vous faudra rajouter une ligne au fichier .htaccess.

Imaginez que vous souhaitez afficher une publicité avant que vos visiteurs n’accèdent à votre page d’accueil … vous n’allez pas renommer la nouvelle page à afficher en plus de renommer la page d’accueil actuelle, surtout si ce changement est temporaire. Le fichier .htaccess permet justement de modifier la page à afficher sans renommer aucune page (donc aucun lien à mettre à jour). La syntaxe est la suivante :

1
DirectoryIndex (fichiers)

Dans l’exemple ci dessous, nous avons remplacer la page d’accueil index.html par la page nouvelle_accueil.html. Si par mégarde cette page etais supprimer du serveur sans avoir mis à jour le fichier .htaccess, votre visiteur sera redirigé vers la page d’erreur 403 que vous aurez préalablement customiser. Cette derniere se trouve dans le dossier erreur à la racine de votre site :

1
DirectoryIndex nouvelle_accueil.html /erreurs/403.php

Redirection permanente d’un lien

La redirection d’un fichier permet de rediriger une page de votre site vers une autre, un dossier de votre site vers un autre ou bien un nom de domaine vers un autre. Si vous avez changer, renommer ou supprimer une page de votre site, plutôt que de perdre son PageRank ainsi que d’éviter de perdre des visiteurs ayant entrer l’url dans leur favoris, vous pouvez la rediriger grâce au fichier .htaccess.

Pour rediriger une page :

1
RedirectPermanent ancien_page.html http://www.domaine.tld/nouvelle_page.html

Pour rediriger un repertoire :

1
RedirectPermanent /ancien_repertoire http://www.domaine.tld/nouveau_repertoire/

Pour rediriger un domaine:

1
RedirectPermanent / http://www.nouveau-domaine.fr/

Article du même thême :

Copyright © 2013 | 41Mag. All rights reserved. Contact.
Integrated by Créa-troyes. Powered by WordPress.