Le fichier .htaccess permet de donner des instructions au serveur. Grace à ce fichier, on va pouvoir contrôler (d'une manière simple) l'accès aux différents répertoires d'un site. Mais toutes les instructions Apache ne sont pas forcément valables chez Free. Commençons cette série par les instructions les plus utilisées...

Pour créer un fichier .htaccess... [1]

Créer directement ce fichier sous Windows n'est pas chose possible. Comme le nom commence par un point (.), Windows considère que ce n'est qu'une extension sans nom de fichier. Il suffit de créer un simple fichier texte, de l'envoyer par FTP et de le renommer directement sur le serveur... D'ailleurs, je précise qu'il ne sera accessible que par FTP !
En général, on le met à la racine du site mais on peut très bien mettre 1 fichier .htaccess par répertoire. Sachant que chaque fichier agit sur son répertoire et ses sous-répertoires, ça peut vite devenir "ingérable" (notamment en cas de "boucle").
Sachez aussi que la moindre "incohérence" dans un fichier .htaccess provoquera une "erreur 500" lors de l'accès au répertoire ou sous-répertoire concerné.

PHP5 chez Free...

Pour avoir PHP5 chez Free (sans renommer tous les fichiers en .php5), il suffit de mettre php 1 dans le fichier .htaccess qui se trouve à la racine du site. Là, je n'apprends peut-être rien à personne...

Rediriger les visiteurs...

L'envie de décourager les "curieux", des pages qu'on déplace, des noms qui changent, une grosse faute d'orthographe dans le titre d'un billet [2] ou juste un site en maintenance ! Bref, pour diverses raisons, on peut avoir besoin de rediriger ses visiteurs. Ces instructions seront toutes placées dans le fichier .htaccess à la racine du site et la redirection sera totalement transparente pour le visiteur :

  • ErrorDocument 404 URL_absolue
    L'erreur 404 signifie "document non trouvé". Ainsi, toute erreur dans l'adresse saisie redirigera automatiquement le visiteur vers l'URL choisie. Ca peut être une page d'erreur ou la page d'accueil. Exemple. D'autres erreurs "HTTP 4xx" peuvent être traitées de la même manière. Voir toutes les erreurs HTTP...
  • Redirect Permanent /ancienne_URL_relative nouvelle_URL_absolue
    Vos pages sont déjà indexées par des moteurs mais les "URL" ont été modifiées. Il n'est pas question que des visiteurs se retrouvent sur une page inexistante ! Il faut donc que les demandes vers l'ancienne page soient redirigées vers la nouvelle d'une manière permanente (définitive). Ca permet surtout aux "robots" de mettre à jour les moteurs de recherche.
    Un jour, par exemple, j'ai décidé de changer le nom de mes catégories. Dans mon .htaccess (situé à la racine de mon blog), j'ai donc quelques lignes du genre :
    redirect permanent /index.php/category/Internet http://geraldetsonblog.free.fr/index.php/category/Le-Web-ses-Points-Zero
    Voici, par exemple, un lien vers l'ancienne catégorie Internet...
  • Redirect Temp /ancienne_URL_relative nouvelle_URL_absolue
    Le visiteur sera redirigé de la même manière, mais une redirection temporaire ne provoquera aucun changement dans les moteurs de recherche.
    Dans le cas d'un site "en maintenance", par exemple, on redirige souvent tous les visiteurs vers une même page (au moins pour expliquer le problème). On a généralement une ligne du genre :
    Redirect Temp / explication_URL_absolue
Précisons sur la syntaxe...
  • URL_absolue
    signifie qu'il faut mettre l'adresse complète (http://www...)
  • /URL_relative
    c'est l'adresse sans la racine du site (même si le fichier .htaccess est dans un sous-répertoire). Notez qu'elle commence toujours par un slash (/). Par exemple, l'adresse relative de la page http://geraldetsonblog.free.fr/index.php/contact est /index.php/contact.
  • Le slash utilisé seul comme /URL_relative signifie que la règle s'appliquera à n'importe quelle page du site.
  • On peut mettre une ligne "en commentaire" en mettant un dièse (#) en début de ligne. En plus de mettre des commentaires dans son fichier, on peut aussi s'en servir pour rendre une instruction "inactive". La ligne suivante, par exemple, sera totalement ignorée :
    # Redirect Temp / URL_absolue
  • Et enfin : les redirections permanentes ou temporaires s'appliqueront dans l'ordre d'écriture. Vos règles devront donc être "hiérarchisées" (de la plus "particulière" à la plus "générale").

C'est tout pour le moment [3] ! La suite est dans ce billet...

A bientôt...

Notes

[1] Si vous ne savez pas créer ce fichu fichier, c'est clair qu'on ne va pas aller bien loin !

[2] Et bien oui... Personne n'est parfait !

[3] Je confirme : personne n'est parfait...