Apache htaccess

Qu'est-ce qu'un fichier htaccess ?

”.htaccess” est un simple fichier texte composé de commandes, déposé sur votre site. Il permet de personnaliser le serveur web Apache dynamiquement, et par répertoire.

Les valeurs de configurations sont héritées à travers les répertoires. Les applications courantes du réglage d'un fichier htaccess sont le basculement entre PHP4 et PHP5, la protection d'une partie du site, la redirection d'un site web vers un autre ou la personnalisation des messages d'erreur. Une fois sur le serveur, son nom doit être .htaccess, avec un point devant.

Ce fichier est a créer avec soin car en cas de maladresse il provoquera une Erreur 500 sur le serveur et bloquera l'accès à vos pages web. Dans ce cas, vérifier la syntaxe et vérifier que vous l'avez bien transféré par FTP en mode texte et non en mode binaire.

Pages d'erreurs personnalisées

Cette fonctionalité vous permet de remplacer (entre autres) le message de type 404 (Not found)

par un texte plus amical ou par une redirection sur une autre URL (locale ou externe).

On utilise pour cela la commande ErrorDocument dont voici quelques exemples d'utilisation :

ErrorDocument 404 /monfichier404.html
ErrorDocument 404 http://www.mondomaine.com
ErrorDocument 403 /accesrefuse.html

Cette commande doit se trouver dans un fichier .htaccess dans le répertoire dont vous souhaiter rediriger les messages d'erreurs.

(typiquement la racine de votre site web mais pas obligatoirement)

Empêcher le listing d'un répertoire

Voici comment empêcher l'affichage de la page d'index qui liste les fichiers d'un répertoire.

  • Etape 1: Créer un fichier htaccess

Prenez votre éditeur de texte favori (Bloc Notes, Vim, Emacs, whatever), et créer un fichier texte avec le contenu suivant:

IndexOptions -Indexes
  • Etape 2: Mettre le fichier en ligne

Mettez le fichier créer précédemment en ligne via FTP, placer le dans le répertoire de votre choix, et renommer le en ”.htaccess” .

Il ne vous reste plus qu'a tester.

Empêcher l'accès à un répertoire

Voici comment restreindre l'accès à une liste d'adresse IP's.

  • étape 1 : Créer un fichier htaccess

Prenez votre éditeur de texte favori (Bloc Notes, Vim, Emacs, whatever), et créer un fichier texte avec le contenu suivant:

# On autorise l'accès à l'ip 213.228.62.50
Allow from 213.228.62.50
# On autorise l'accès à l'ip 213.228.62.51
Allow from 213.228.62.51
# On interdit l'accès à toutes les autres ips
Deny from All
  • étape 2 : Mettre le fichier en ligne

Mettez le fichier créer précédemment en ligne via FTP, placer le dans le répertoire de votre choix, et renommer le en ”.htaccess” ( sans les guillemets ).

Il ne vous reste plus qu'a tester.

Sécuriser un répertoire avec une authentification

Voici comment sécuriser l'accès à un répertoire (ou tout le site), par une authentification HTTP.

Supposons que vous souhaitez protéger le répertoire appelé secret, accessible via l'URL suivante :

http://www.online.net/secret/
  • Etape 1: Création d'une table d'utilisateurs

Il s'agit de créer un fichier contenant la liste des utilisateurs et leur mot de passe, nous appellerons ce fichier “passlist.txt”.

martin:PasSw0rd
jean:SecR3t
sophie:H1dDeN

Le premier champ est le nom de l'utilisateur, le second est le mot de passe en clair.

  • Etape 2: Création du fichier htaccess

Pour limiter l'accès aux utilisateurs déclarés dans le fichier “passlist.txt”, il vous faut créer un fichier htaccess dans le répertoire que vous souhaitez protéger avec le contenu suivant :

PerlSetVar AuthFile secret/passlist
AuthName "Acces Restreint"
AuthType Basic
<limit GET POST>
require valid-user
</limit>

La commande PerlSetVar désigne le chemin d'accès à la table des utilisateurs. Il est relatif au document_root.

Donc si vous avez stocké votre table d'utilisateurs dans le répertoire secret/password/ sous le nom 'maliste.txt', vous devrez modifier la directive PerlSetVar AuthFile en conséquence :

PerlSetVar AuthFile secret/password/maliste.txt

La commande require valid-user autorise tous les utilisateurs valides à télécharger les fichiers du répertoire. Vous pouvez aussi utiliser la syntaxe suivante :

require user martin sophie

Pour n'autoriser uniquement que les utilisateurs martin et sophie, mais pas jean.

  • Etape 3: Mettre les fichiers en ligne

Mettez le fichier créer précédemment en ligne via FTP, placer le dans le répertoire de votre choix, et renommer le en “.htaccess” .

Il ne vous reste plus qu'a tester.

Pour ceux qui veulent aller plus loin, le guide utilisateur d'Apache qui traite en détail tout les aspects d'authentification.

Remarques

  • Sous plate-forme Microsoft Windows, il n'est pas possible de créer directement sur votre ordinateur un fichier portant le nom ”.htaccess”. Vous devez le créer avec un autre nom, par exemple “htaccess.txt” , le transférer sur le serveur, puis le renommer.
  • Vous devez transférer ce fichier en mode ASCII (voir documentation de votre client FTP) pour assurer la conversion des caractères 'fin de ligne'.
  • Il est fortement conseillé de protéger sa liste de mots de passes, vous pouvez par exemple la stocker dans un sous-répertoire de votre site Web que vous protégerez en créant un fichier .htaccess .

Redirections HTTP

Vous avez la possibilité de mettre des redirections vers une autre partie de votre site, ou vers un autre site .

Pour rediriger votre site vers un autre (vers http://www.online.net par exemple)

  • Etape 1: Créer un fichier .htaccess avec le contenu suivant
# Redirection vers le site d'Online.net
RedirectPermanent / http://www.online.net/
  • Etape 2: Mettre le fichier en ligne

Mettez le fichier en ligne via FTP à la racine du sous domaine concerné (répertoire www pour www.domaine.com, blog/ pour blog.domain.cometc ) et renommer le en en ”.htaccess”.

La documentation complète sur le site d'Apache.

Rewrite Rules

Le module apache mod_rewrite est activé sur nos serveurs d'online, son fonctionnement via un fichier htaccess est standard.

La directive FollowSymlinks est activé et ne peut être modifiée, il ne faut donc pas la déclarer, sinon vous auriez une error http 500 .

Prenons un exemple, le nom de domaine est domaine.com, l'url du script a appeler est http//www.domaine.com/index.php avec le nom de page en argument.

  • Etape 1: Créer un fichier htaccess *
RewriteEngine On
RewriteRule ^([^\.]+)\.html /index.php?page=$1 [L]
  • Etape 2: Mettre le fichier en ligne

Mettez le fichier en ligne via FTP à la racine du sous domaine concerné (répertoire www pour www.domaine.com, blog/ pour blog.domaine.com etc ) et renommer le en en ”.htaccess”.

  • Etape 3: Tester

Vous pouvez maintenant tester en appelant l'url http://www.domaine.com/test.html, index.php sera exécute et recevra en argument la variable page qui a pour valeur “test”.

 
hebergement-web/htaccess.txt · Dernière modification: 2008/08/29 00:06 par obooklage
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki