Fichiers .htaccess

Redirection

Noter que ceci est fortement déconseillé chez Free : il fournit un service d'hébergement de pages web, pas un service de redirection !
Toléré donc pour une phase transitoire (migration en cours, en attendant que les référencements suivent et pointent vers le nouveau site), avant destruction définitive.

Autorisation par mots de passe

AuthName "bla bla bla"
AuthType Basic
AuthUserFile private/liste.pw
Require valid-user
Le "AuthName" est ce qui est affiché lors de la demande de mot de passe
AuthUserFile indique le fichier qui contient les mots de passe

Le fichier de mot de passe contient une suite de lignes

nom1:password1
nom2:password2
nom3:password3
Note : chez Free les mots de passe dans ce fichier ne doivent pas être cryptés.

Mais ceci (qui est standard) ne fonctionne pas chez Free ! il faut utiliser la syntaxe :

PerlSetVar AuthFile private/liste.pw
AuthName "bla bla bla"
AuthType Basic
Require valid-user

Et donc pour avoir un .htaccess qui marche aussi bien chez Free qu'en local, utiliser des '<ifDefine Free>'

<ifDefine Free>
PerlSetVar AuthFile private/liste.pw
</ifDefine>
<ifDefine !Free>
AuthUserFile private/liste.pw
</ifDefine>

Enfin il est recommandé de cacher le fichier de mots de passe, soit en faisant confiance au serveur et en commençant son nom par '.' (.htpasswd), soit par un deny from all.

Limitations - bloquages d'acces

Order Deny,Allow
Deny from all
Allow from xxx.xxx.xxx.xxx

Ceci permet de n'autoriser l'accès (HTTP) que depuis l'IP xxx.xxx.xxx.xxx
Sans Allow, le site est complètement inaccessible (erreur 403)

Important : ceci n'est testé que lors d'une demande HTTP (GET, HEAD etc... ), pas lors d'un accès au système de fichier par php (include, open de fichiers) ou par apache lui même (fichier htpasswd).
Ceci permet de protèger l'accès aux répertoires contenant des "informations sensibles" sous forme de fichiers à inclure,
seuls ces répertoires ayant un Deny from all
Bien entendu, le répertoire contenant un fichier de mot de passe doit être protégé ainsi.

Il est possible de limiter l'accès à certains fichiers seulement, par la commande

<Files toto>
Order Allow,Deny
Deny from all
</Files>
le fichier toto est alors seul inaccessible
On peut ainsi empêcher l'acces aux seuls fichiers "sensibles" (mots de passes, fichier .htacces lui même etc...)
Normalement, les fichiers "cachés", commençant par un '.' (.htaccess, .htpasswd etc) sont inaccessibles en HTTP, mais on n'est jamais trop prudent...

Nota : une seule commande <Files > dans le fichier .htaccess.
Pour plusieurs fichiers à protèger, on peut mettre des '*', par exemple <Files *.inc> pour protéger l'accès à tous les fichiers d'extension inc
La doc Apache donne la syntaxe avec expressions régulières <Files ~ "\.(gif|jpe?g|png)$">
Pas dit que ça fonctionne chez Free...
En tout cas, la fonction équivallente <FilesMatch regex> ne fonctionne pas...

Index

Options -Indexes interdit le listage des répertoires (index of)
Dans ce cas, l'accès à un répertoire qui ne contient pas de fichier index.(htm/html/php/php5) provoque une erreur 403 accès interdit..
Pour éviter l'erreur 403, il est donc préférable de mettre effectivement un index.html plutôt que de mettre un htaccess. La page index.html alors appelée permet d'expliquer ce qu'il y a dans le répertoire, pourquoi il n'est pas listé et de mettre une redirection/un lien propre vers le menu/la page d'accueil du site.
Pour remettre l'index of : Options +Indexes, ou supprimer/commenter la ligne (index of par défaut).

Multiview

Options +MultiViews
Si un navigateur web fait une requête pour index.html, et aucun fichier ne se nomme ainsi, le serveur essaiera index.html.fr, index.html.en etc. selon les préférences de langage du visiteur.

Fichiers d'erreur

ErrorDocument 404 errors/notfound.html
Permet de remplacer la page standard d'erreur "fichier introuvable" par une page personnalisée

D'autres erreurs sont aussi personnalisables de cette façon :

Fonctions spéciales Free

php 1 permet de forcer l'usage de Php 5 (Php 4 par défaut)

Pour avoir un .htaccess fonctionnant aussi bien chez Free qu'ailleurs (en local pour test par exemple) :

<ifDefine Free>
php 1
</ifDefine>

Fonctions désactivées

Les fonctions suivantes sont désactivées chez Free :

AddTypepermet de modifier les types MIME et les associations de fichiers
... 
En fait presque toutes, sauf celles explicitement autorisées.

L'appel de fonctions inactivées, ainsi que toute erreur de syntaxe dans un .htaccess provoque une erreur 500.

Sommaire informatique Accueil Mail