Crypter les mots de passe

htpasswd -m /cheminvers/.htpasswd loginà_modifier

Apache fournit un outil permettant de générer facilement des mots de passe cryptés (aussi bien sous Windows que sous Unix), il s'agit de l'utilitaire htpasswd accessible dans le sous-répertoire bin d'Apache.

Syntaxe:

* Pour créer un nouveau fichier de mots de passe :

  htpasswd -c {chemin du fichier de mot de passe} utilisateur

* Pour ajouter un nouvel utilisateur/mot de passe à un fichier existant :

  htpasswd {chemin du fichier de mot de passe} utilisateur

Le mot de passe sera demandé en ligne de commande avec une confirmation.

exemple :

   htpasswd -c /www/secure/.htpasswd JFPillou

   Utilisateur  :
   Mot de passe :

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

La syntaxe pour bloquer l'accès d'un répertoire par un domaine est la suivante :

 Allow (all, [liste de domaine])
 Deny (all, [liste de domaine])
 Order (Allow,Deny ou Deny,Allow)
 Order Deny, Allow
 Deny from ..LeNomDuDomaine.com

Toutes les personnes (requêtes) provenant du domaine .LeNomDuDomaine.com ne pourront avoir accès aux ressources comprises dans le répertoire et ses sous-répertoires. La commande Order sert à préciser explicitement que la commande Deny va bien annuler l'effet de Allow et non l'inverse.

ErrorDocument 403 http://www.commentcamarche.net/accesrefuse.php3
AuthUserFile /repertoire/de/votre/fichier/.FichierDeMotDePasse
AuthGroupFile /dev/null
AuthName "Accès sécurisé au site CCM"
AuthType Basic
<LIMIT GET POST>
 
order deny,allow
deny from all
allow from 193.48.172.2
require user JFPillou
</LIMIT>

Dans ce cas, l'accès ne sera possible que pour l'utilisateur JFPillou à partir de l'adresse IP 193.48.172.2 et avec le bon mot de passe.

Par défaut, Apache applique les restrictions du fichier .htaccess à l'ensemble des fichiers du répertoire dans lequel il se trouve ainsi qu'à tous les fichiers contenus dans ses sous-répertoires.

Il est également possible de restreindre l'accès pour un ou plusieurs fichiers du répertoire grâce à la balise <Files>.

Voici un exemple de restriction aux fichiers admin.php3 et admin2.php3 :

<Files admin.php3>

AuthUserFile /repertoire/de/votre/fichier/.FichierDeMotDePasse AuthGroupFile /dev/null AuthName “Accès sécurisé au site CCM” AuthType Basic <LIMIT GET POST>

require user JFPillou </LIMIT>

</Files>

<Files admin2.php3>

AuthUserFile /repertoire/de/votre/fichier/.FichierDeMotDePasse AuthGroupFile /dev/null AuthName “Accès sécurisé au site CCM” AuthType Basic <LIMIT GET POST>

require user JFPillou </LIMIT>er

</Files>

Il faut utiliser une seule balise <Files> par fichier. Sinon, l'erreur suivante est reportée dans le fichier de log des erreurs :

.htaccess: Multiple arguments not (yet) supported.

Pour info, il faut ajouter que depuis Apache 1.3, il est conseillé d'utiliser la balise <FilesMatch> à la place de la balise <Files>. Cette nouvelle balise ne supporte aussi qu'un seul argument mais on peut traiter plusieurs fichiers grâce à une expression régulière.

Redirection par le fichier .htaccess

Quand un site évolue, que ce soit par le changement d’un répertoire, un changement de nom de domaine, un changement de noms de fichiers, etc. , se pose le problème de toutes les pages référencées qui ne pointeront plus vers grand chose …

Je ne suis pas du tout un spécialiste pour l’administration de serveurs Apache, mais j’utilise cette technique et elle fonctionne très bien.

Il existe plusieurs techniques pour rediriger les anciennes adresses — qui se promènent dans les favoris des navigateurs ou les moteurs de recherches — vers les nouvelles : entre autres l’utilisation du fichier .htaccess qui est le fichier qu’intrerprète en premier le serveur.

Plusieurs cas

la structure du site reste la même, comme le nom des fichiers

Installer le fichier .htaccess à la racine du site ou du répertoire :

Toutes les anciennes adresses sont redirigées vers les nouvelles.

Redirect permanent / http://www.mon-nouveau-site.org/

 

la structure du répertoire reste la même, comme le nom des fichiers

Redirect permanent /repertoireA http://www.site-actuel.org/repertoireB

rien ne correspond

Dans l’ancien répertoire – celui qui ne contient plus rien – on installe le fichier .htaccess suivant :

Options -Indexes
ErrorDocument 403 http://www.mon-nouveau-site.org/
ErrorDocument 404 http://www.mon-nouveau-site.org/


* Options —Indexes : si on pointe vers l’adresse www.site-actuel.org – qui ne contient plus de fichier index – il y aura interdiction de lister le répertoire et un renvoi d’erreur 403
* ErrorDocument 403 … : à l’envoi d’une erreur 403, le serveur renvoi vers l’adresse http://www.mon-nouveau-site.org/
* ErrorDocument 404 … : si on pointe vers l’adresse www.site-actuel.org/rep/accueil.php – qui n’existe plus – il y a renvoi d’une erreur 404, le serveur renvoi vers l’adresse http://www.mon-nouveau-site.org/