|
Notre magasin Rue Albert 1er, 7 6810 Pin - Chiny (/fax: 061/32.00.15 |
|
|
FORMATIONS |
Le MAGASIN YBET |
PRODUITS et SERVICES |
| Logiciels de gestion | ||
| Caisses enregistreuses TEC | ||
| Access - Excel | Plan d'accès | MATERIEL INFORMATIQUE |
|
15.5. Le fichier HTACCESS1 Introduction - 2. Protection d'un dossier par mot de passe - 3. Messages d'erreur personnalisés - 4. Fichier index par défaut - 5. Accepter ou refuser des visiteurs d'un domaine particulier - 6. Interdire l'accès à certains robots ou aspirateurs de sites - 7. Déplacer des fichiers, dossiers ou nom de domaines - 8. URL Rewriting
1. Introduction.Le fichier .HTACCESS est un fichier de configuration des serveurs APACHE utilisé principalement sur les serveurs LINUX (même si une version fonctionne sur les serveurs Windows). Il peut être inséré dans le dossier principal ou dans un sous-dossier. La configuration appliquée gère le dossier en cours plus tous les sous-dossiers inclus. Parmi ses différentes fonctions, on retrouve:
Remarque: l'utilisation de ce fichier n'est pas limité à un langage de programmation mais bien aux droits d'accès et fonctionnalités des fichiers et dossiers hébergés. Si un fichier .htaccess est inséré ans un sous-dossier alors qu'un dossier supérieur contient également ce type de fichier, celui du dossier parent reste en fonction dans le sous-dossier tant que les règles ne sont pas réécrites. Tous les hébergements n'acceptent pas cette fonctionnalité, déjà les serveurs sous Windows n'utilisent généralement pas Apache (voire IIS sous Windows 2000). Quelques hébergements gratuits le refusent, d'autres permettent des fonctions limitées, voire des syntaxes modifiées. Quelques fonctionnalités comme le mode rewriting sont également refusés dans quelques hébergements mutualisés. Je vais essayer ici de faire le plus simple possible, même en passant des règles trop spécifiques si nécessaires. C'est une formation, pas un manuel professionnel, mais la majorité des règles essentielles sont ici. Quelques règles qui suivent peuvent normalement être utilisé en local sous EasyPhp, même si ça nécessite parfois de configurer php.ini ou en réel de charger en mémoire le Module mod_auth. Pour enregistrer le fichier sous son vrai nom, dans enregistrer, tapez ".htaccess". De toute façon, si vous avec une erreur 500 (erreur serveur) ou 404 (page introuvable) avec une règle valide, ça signifie généralement que votre hébergement n'accepte pas ce type de fichier. 2. Protection d'un dossier par mot de passe.Cette méthode permet de définir les accès sur un dossier et ses sous-dossiers via un login et un mot de passe (plusieurs utilisateurs peuvent être autorisés si nécessaires). Utilisation syntaxe simple dans le fichier de protection .htaccess (enlevez les lignes de commentaires //)
Dans l'exemple ci-dessous, le répertoire protégé est sur le site www.darut.be, la commande envoyée par AuthName est Statistiques. Remarquez que le nom du dossier n'est pas affiché, ni même le nom des utilisateurs autorisés. Les login et mots de passe cryptés sont inscrit dans le fichier défini par AuthUserFile (généralement nommé .htpassword mais ce n'est pas obligatoire), par exemple /home/ybet/www/admin/.htpasswd soit suivant la notation Linux et non la notation "Internet".
Il nous reste à définir le contenu de ce fichier .htpassword. Il contient chaque fois le nom d'utilisateur suivi de son mot de passe crypté. Le cryptage se fait à l'aide de la commande PHP crypt(mot_de passe). Le petit programme en php ci dessous permet de créer ce mot de passe. Le nom d'utilisateur n'intervient pas dans le cryptage.
Entrez votre login et votre mot de passe pour le cryptage. Un fichier plus pratique pour le décoder. Prenons le cas d'un login ybet et d'un mot de passe ybet, le code à insérer dans le fichier sera ybet:$1$On/L3V0T$OmPIhwRO7kpZaFhA/rwEe0 Les autres utilisateurs également autorisés sont rajoutés à la ligne suivante les uns après les autres. En cas de d'erreur, vous pouvez personnaliser le message via la partie ci-dessous (erreur 403) 3. Messages d'erreurs personnalisésLa deuxième possibilité que nous allons étudier est la personnalisation des messages d'erreurs HTLM dont voici les les principaux:
La syntaxe dans le fichier (où le ficher est à créer suivant votre site) est: ErrorDocument 401 http://www.mon-site.be/401.html ErrorDocument 403 http://www.mon-site.be/403.html ErrorDocument 404 http://www.mon-site.be/404.html ErrorDocument 500 http://www.mon-site.be/500.html ... Les différents documents sont à créer sur le serveur reprenant le message personnel suivant le type d'erreur rencontré. Petit trucs: Vous pouvez également pour l'exemple 404 par exemple faire une redirection par le header: <meta http-equiv="refresh" content="3; URL=http://www.ybet.be"> qui renvoie automatiquement le visiteur sur la page d'accueil après 3 secondes. Vous pouvez également entrer les pages d'arrivées dans une table pour les erreurs 404 en utilisant la commande PHP $_SERVER["HTTP_REFERER"] qui renvoit l'adresse complète de page précédente. 4. Fichier index par défaut.Deux utilisations sont possibles, soit indiquer (change) la page d'entrée par défaut (par exemple que la page d'entrée s'appelle home.htm) ou empêcher l'affichage du contenu d'un répertoire en l'absence de fichiers d'entrée.
Redirection vers la page home.html en remplacement de la page index.html DirectoryIndex index.php home.html Une erreur commune est l'affichage du nom des fichiers et dossiers en absence d'un fichier index.htm ou index.php. La solution est de rediriger le visiteurs vers une page d'erreur 403 comme ci-dessus. La commande dans l'.htaccess: Exemple d'utilisation: DirectoryIndex index.php index.html index.htm ../erreur.htm Ici, Apache va vérifier si le fichier index.php existe, sinon, les extensions html et en dernier recours va renvoyer vers le dossier de la root au fichier erreur.htm. Remarque, pour éviter des problèmes de duplicate content, ne le renvoyez pas vers une page connue des moteurs de recherche. Par exemple, si le dossier à protéger est \tests, et le renvoi vers la page d'index du site: ce type de redirection va afficher votre effectivement votre page d'entrée mais avec l'adresse du dossier. 5. Accepter ou refuser des visiteurs provenant d'un domaine particulierCette fonction va permettre d'accepter ou t'interdire les accès à partir d'un autre domaine (site). Il permet également de bloquer quelques robots ou aspirateurs de sites sous certaines conditions (à condition de connaître l'adresse IP ou le domaine d'où provient l'aspirateur. Remarque, cette liste de commande ne récupère que la dernière adresse visitée, pas la nationalité par exemple.
La commande Allow (permettre) peut accepter tous (All), par défaut ou une liste de domaines. De même, la commande Deny (refuser) peut bloquer tous (all) ou une liste de domaines. La commande Order permet de spécifier si la première règle est Allow ou Deny.
Remarque: pour interdire l'accès à un dossier à Google, vous pouvez utiliser un robot.txt avec la commande User-agent: GoogleBot # interdiction de Googlebot ou même User-agent: * #tous les robots Cette solution n'est utilisée que pour les robots qui acceptent de suivre les recommandations du robots.txt (donc pas les aspirateurs et autres hackeurs). 6. Interdire l'accès aux robots et aspirateursC'est également une des application courante de ce fichier, interdire l'accès aux robots d'indexation et aspirateurs de sites en fonction de leur User Agent. Le mode Rewrite d'Apache doit être activé, en plus de supporter l'htaccess. Les users agents sont une sorte de signature des navigateurs, robots, aspirateurs de sites, .. Tous ne sont pas mauvais et les règles suivantes ne sont qu'un exemple d'utilisation. Mieux vaut donc vérifier sur des sites plus spécialisés.
7. Fichiers, dossiers, nom de domaine déplacés.Les méthodes ci-dessous indiquent des fichiers, répertoires, .... déplacés de manière permanente. Ces commandes utilisent toutes RedirectPermanent source destination (la nouvelle adresse doit être une URL absolue, de type http://www.site.com/page-dossier.
8. URL RewritingSans être un spécialiste de ces procédures, l'URL Rewriting permet de réécrire à la volée (automatiquement) les noms de pages dynamiques (exemple: /index.php?ID=127) en page statique (exemple /index.php/id-127). Les règles de récritures récupèrent d'abord l'adresse de la page demandée coté serveur, réécrivent l'adresse de la page avant d'envoyer le résultat au navigateur du client. Les règles doivent être parfaitement écrites, sous peine de retrouver la même page avec plusieurs adresses différentes. Pour les CMS, et autres logiciels prêts à l'emploi, la majorité intègrent directement ou via un module complémentaire une administration permettant ce type d'action sur les URL. Cette méthode permet par exemple de reprendre le titre de la page comme adresse. Elle est sensée permettre un meilleur positionnement des pages sur les moteurs de recherche, même si les gains sont souvent modeste (en gros uniquement des liens venant des forums qui ne reprennent que l'adresse de page comme texte du lien) mais peut également provoquer une sur-optimalisation. néanmoins, les robots n'acceptent qu'un nombre de paramètres passés (MSN bloque l'accès à la page au bout de 3 paramètres, comme ?id=127&langue=fr&famille=informatique). Pour faire passer de nombreux paramètres, cette méthode est donc conseillée. Cette technique nécessite d'abord de créer une règle, ensuite de l'adapter à la partie dynamique du site via l'.htaccess. En théorie, si la règle est bien faite, ça ne ralentit pas trop le serveur. Remarque, les serveurs sous OVH impose souvent /page au lieu de page dans les règles ci-dessous. Avant toute chose, la commande
doit être intégrée tout au début. Elle est obligatoire et préalable avant toute règle d'URL Rewriting. En deuxième, je vous conseille de relire les parties Preg_match, les règles sont similaires, sinon identiques. Pour débuter ...
Premier exemple: Le nom de la page est http://www.ybet.be/article.php?numero =10&cat=3. Nous souhaiterions la renommer en http://www.ybet.be/article-10-3.htm.
Quelques explications: La page finale doit donc être:
Quelques explications:( [0-9]+) est similaire à la commande Preg_match vue dans un autre chapitre, [0-9] désigne un intervalle, soit ici de 0 à 9. Nous pouvons également par exemple utiliser [A-Z], le + qui suit permet de déterminer une ou plusieurs occurrence, par exemple numero ci dessus est 10, soit constitué de 1 et de 0 (2 fois). Cette règle va donc définir tout nombre entiers >= 0. Cette partie est entre parenthèse et permet de la mettre dans une variable. C'est la première et elle s'appelle $1. Le tiret qui suit cette première partie permet de couper la variable. La deuxième occurrence ([0-9)+) va permettre de récupérer une deuxième partie de chiffres (ici le numero de CAT). Elle est suivie de \.htm$ pour terminer et ajouter à la chaîne. La deuxième partie reprend la partie à rechercher, tout simplement en remplaçant les numéros par les variables récupérées dans la première partie, soit, $1, $2, ... Le résumé des règles:
Les deux drapeaux principalement utilisés.
9. Pour terminerLes règles et commandes ci-dessus ne sont qu'un petit résumé de ce qui peut être fait avec un fichier HTACCESS. Elles sont à vérifier avant de les implanter sur un serveur en activité puisqu'elles peuvent sous certaines conditions bloquer l'accès au site ou à un dossier, éventuellement bloquer l'accès à des visiteurs "intéressants" comme les robots d'indexation. |
|
YBET informatique: analysons ensemble votre projet. |
Cours sur la base de donnée Access de Microsoft en ligne |
Une introduction au langage HTML. |
Utilisation des CSS: mise en page, placement, ... |