Aujourd'hui, nous allons passer en revue quelques utilisations pratiques des fichiers htaccess que vous pouvez utiliser dans vos applications Web..
Les fichiers htaccess sont des fichiers de configuration en texte brut utilisés par le serveur Web HTTP Apache. Ils permettent aux utilisateurs de définir des options au niveau du répertoire sans nécessiter un accès à la httpd.conf fichier. En tant que tel, il est nécessaire que votre serveur utilise Apache et un hôte Web permettant htaccess fichiers (les hôtes les plus populaires font).
Je suppose une connaissance de base de htaccess, mais si vous avez besoin de vous rafraîchir, consultez cet article de Joseph Pecoraro
La liaison directe, ou lien en ligne, se produit lorsqu'un site Web renvoie directement à un objet d'un autre site. Cela coûte à la bande passante du site d'hébergement de fournir l'image sur la page du deuxième site. Sur les sites photo populaires, cela peut être un problème majeur, même si parfois plein d'humour.
Il existe des moyens de résoudre ce problème croissant en utilisant htaccess. Tout d'abord voici l'image que nous essayons de protéger.
RewriteEngine sur RewriteCond% HTTP_REFERER! ^ $ # Domaines pouvant créer un lien vers des images #ajouter autant que vous le souhaitez RewriteCond% HTTP_REFERER! ^ Http (s)?: // (www \.?? Demo.collegeaintcheap.com [NC] # RewriteCond% HTTP_REFERER! ^ Http (s)?: // (www \.)? Noahhendrix.com [NC] #n'affiche aucune image lorsque le lien RewriteRule \ est lié à un lien chaud $. [-] NC, F, L]
Nous allons parcourir cette ligne par ligne.
C’est assez simple, mais nous voudrions peut-être dire à l’utilisateur que nous ne voulons pas qu’ils associent nos images à un lien direct, nous allons donc rediriger toutes les demandes comportant un lien direct vers une image au lieu d’envoyer une erreur 403 interdite. Ceci est fait en remplaçant la dernière ligne par ce code.
#show une autre image RewriteRule \. (jpg | png | gif) $ http://demo.collegeaintcheap.com/envato/htaccess/hotlink/images/hotlink.jpeg [NC, R, L]
Vous pouvez modifier l’URL en n’importe quel chemin d’image que vous souhaitez sur votre domaine, mais rappelez-vous qu’il ne doit pas se terminer par jpg, png ou gif, car cela réappliquera la règle et enverra le serveur dans une boucle sans fin. J'ai choisi d'utiliser l'ancienne extension .jpeg pour résoudre ce problème. le R drapeau qui a remplacé F envoie simplement une redirection.
C'est un bon petit conseil si vous avez un spammeur sur votre site web. Si vous pouvez trouver leur adresse IP dans vos journaux, ajoutez-la simplement à un fichier htaccess.
Ordre Refuser, Autoriser Refuser à partir de 24.121.202.23 # Refuser à partir de 0.0.0.0
En utilisant la directive Order du module mod_access, nous pouvons spécifier les IP à refuser et à autoriser. En utilisant simplement la syntaxe Refuser d'une adresse IP nous pouvons interdire à ces utilisateurs d'accéder à notre répertoire.
Tous les sites prêts pour la production doivent utiliser des pages d'erreur personnalisées pour une touche professionnelle. Ceci est facile en utilisant la directive ErrorDocument dans le noyau d'Apache. Une page personnalisée est bien meilleure que les pages d'erreur Apache par défaut.
ErrorDocument 404 http://demo.collegeaintcheap.com/envato/htaccess/errors/404.html ErrorDocument 403 http://demo.collegeaintcheap.com/envato/htaccess/errors/403.html ErrorDocument 500 http: // démonstration. collegeaintcheap.com/envato/htaccess/errors/500.html
ErrorDocument prend deux arguments code d'erreur et document. Dans le code ci-dessus, j'ai créé des documents d'erreur pour les 3 erreurs HTTP les plus courantes: 404 introuvables, 403 interdits et 500 erreurs de serveur. Ensuite, vous pouvez fournir l'URL complète ou le chemin d'accès relatif à vos documents d'erreur. Vous pouvez également les rediriger vers un script PHP qui enregistre les erreurs dans une base de données ou vous les envoie par e-mail (cela peut toutefois être ennuyeux). C’est un excellent moyen de contrôler les erreurs dans votre application Web. Ne manquez pas la vitrine des pages d’erreurs 404 de Smashing Magazine pour trouver de l’inspiration..
Si vous effectuez une mise à niveau majeure du site, vous devrez probablement rediriger les utilisateurs vers une page les informant. Cela empêche les utilisateurs de voir des pages cassées ou des failles de sécurité potentielles pendant le téléchargement de l'application. Une mise en garde à prendre en compte est que nous souhaitons autoriser certaines adresses IP à être testées sur le site avant sa mise en production, tout cela peut être réalisé dans un fichier htaccess..
RewriteEngine on RewriteCond% REQUEST_URI! /Upgrade.html$ RewriteCond% REMOTE_HOST! ^ 24 \ .121 \ .202 \ .30 RewriteRule $ http://demo.collegeaintcheap.com/envato/htaccess/upgrade/upgrade/. html [R = 302, L]
Nous utilisons à nouveau le moteur de réécriture pour le faire, mais de manière inverse. Nous devons d’abord définir une condition qui exclut le document décrivant la mise à niveau, sinon notre serveur commence une boucle sans fin. Ensuite, nous excluons la redirection d’une seule adresse IP à des fins de test. Enfin, nous utilisons la règle de réécriture pour envoyer les utilisateurs vers une page de mise à niveau. Les indicateurs que nous avons examinés auparavant, sauf que cette fois, nous avons défini la redirection sur un code d'état 302, indiquant au navigateur que la page a été temporairement déplacée et qu'il gère la mise en cache en conséquence. Smashing Magazine, encore une fois, présente une superbe vitrine de pages de maintenance efficace.
Pour de nombreuses raisons de sécurité, il est judicieux de restreindre la liste des répertoires, le comportement par défaut dans Apache. Cela peut être fait avec une simple ligne dans notre fichier htaccess, nous pouvons empêcher les visiteurs de voir nos listes de répertoires.
Options -Indexes
Désormais, les utilisateurs qui demandent un répertoire sans fichier index lui montreront une page d'erreur 403 interdite.
Ce sont plusieurs de mes utilisations préférées de htaccess. Laissez le vôtre dans les commentaires! Je suis disponible pour aider dans les commentaires ou sur twitter. S'il y a beaucoup d'intérêt, je ferai plus de tutoriels htaccess avec des solutions à vos demandes dans les commentaires. Merci d'avoir lu!