5 solutions htaccess amusantes et pratiques

Aujourd'hui, nous allons passer en revue quelques utilisations pratiques des fichiers htaccess que vous pouvez utiliser dans vos applications Web..

Exigences

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

1. Prévenir les hyperliens

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.



http://www.shapelessmass.com

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.

  1. Tout d'abord, nous devons activer le moteur de réécriture dans Apache, cela nous permet de rediriger la demande de l'utilisateur..
  2. Nous commençons ensuite à définir nos conditions avec RewriteCond. C'est une fonction qui prend deux arguments: TestString et CondPattern. TestString est la chaîne sur laquelle nous voulons vérifier notre CondPattern (en utilisant des expressions régulières). $ HTTP_REFERER est une variable fournie par Apache qui contient le domaine d'où provient la requête. Dans ce cas, nous souhaitons autoriser les requêtes provenant de référents HTTP vierges pour protéger les utilisateurs qui se trouvent sur un serveur proxy qui envoie des référents vides..
  3. Ensuite, nous définissons les domaines à partir desquels nous autoriserons la liaison de nos images en utilisant la même syntaxe, sauf que nous fournissons maintenant une URL. le [CAROLINE DU NORD] drapeau à la fin de la commande indique simplement au moteur d’ignorer le boîtier. Vous pouvez ajouter autant de domaines de lignes que vous le souhaitez ici, en utilisant la même syntaxe. Par exemple, j'ai ajouté mon domaine personnel, mais je l'ai commenté..
  4. Enfin, la dernière ligne est la RewriteRule que nous souhaitons utiliser si l’une des conditions ci-dessus n’est pas remplie. Il faut aussi deux arguments Modèle et Substitution, où pattern est une correspondance d'expression régulière et une substitution est ce que nous souhaitons remplacer par toute correspondance. Dans ce cas, nous recherchons des demandes qui se terminent par jpg, png et gif; si trouvé, nous voulons utiliser une substitution en blanc. Cependant, dans les drapeaux, nous disons en outre ce que nous voulons faire., Caroline du Nord signifie pas de cas, F envoie une erreur 403 interdite à l'utilisateur, et L indique au moteur d'arrêter la réécriture afin qu'aucune autre règle ne soit appliquée.

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.

2. Bloquer l'utilisateur par adresse IP

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.

3. Documents d'erreur

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..

4. Rediriger lors de l'exécution des mises à niveau

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.

5. Masquer la liste du répertoire

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.

Conclusion

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!

  • Suivez-nous sur Twitter ou abonnez-vous au fil RSS NETTUTS pour plus d'articles et de sujets sur le développement Web quotidiens.