25 règles .htaccess, dont tout le monde devrait savoir développeur Web

Avant de commencer, je voudrais attirer votre attention sur le fait que l'abus de l'utilisation de .htaccess peut entraîner de mauvaises performances de votre site web. La règle principale est d'utiliser .htaccess pour la mise en œuvre de tel ou tel problème est que dans le cas s'il n'y a pas d' autres options.
Assurez-vous que vous avez une sauvegarde du fichier original .htaccess pour votre site avant de faire des changements. Aussi, rappelez-vous - fonctionnement les règles suivantes dépend des réglages individuels de votre serveur web hôte spécifié. Certaines directives peuvent être interdites et peuvent ne pas fonctionner.
.htaccess (de l'accès English hypertexte ..) - fichier de configuration supplémentaire du serveur web Apache et le serveur comme lui. Il vous permet de définir un grand nombre de paramètres et autorisations du serveur Web dans des répertoires distincts (dossiers), tels que l'accès contrôlé à des répertoires, de redirection de types de fichiers, etc., supplémentaires sans modifier le fichier de configuration maître.
Fichier .htaccess peut être placé dans un répertoire quelconque. Les directives dans ce fichier sont applicables à tous les fichiers dans le répertoire courant et tous ses sous-répertoires (si ces directives sont des directives redéfinies sous-jacentes fichier .htaccess).
Pour que ces fichiers pour pouvoir utiliser .htaccess, le réglage approprié du fichier de configuration principal (la valeur de la directive AllowOverride doit être réglé sur All). En règle générale, la grande majorité des hôtes autorisés à utiliser vos fichiers .htaccess.
1. Ne pas télécharger des fichiers à partir de sites externes
Êtes-vous fatigué des gens qui affichent des photos publiées sur votre site - sur leurs ressources, gaspillant ainsi votre trafic et la création d'un fardeau inutile sur votre hébergement? Ce code est placé à la fin de votre fichier .htaccess, permettra d'éviter le téléchargement de vos images - sites tiers.
Options + FollowSymlinks télécharger des fichiers # Bloquer des sites externes RewriteEngine On RewriteCond% {HTTP_REFERER}! ^ $ RewriteCond% {HTTP_REFERER} ^ http // :! (Www.) Site.com/ [nc]? RewriteRule * (gif | jpg | png) .. $ Http://site.com/stop.gif[nc]
Ne pas oublier de changer site.com à votre nom de domaine et créer une image de stop.gif à afficher à la place des images demandées.
2. bloquer toutes les demandes non sollicitées provenant d'agents de l'utilisateur
Cette règle permet de bloquer l'agent utilisateur indésirable, qui peut être potentiellement dangereux ou simplement surcharger le serveur avec les requêtes inutiles.
# Bloquer les mauvais robots et robots SetEnvIfNoCase user-agent ^ FrontPage [NC, OR] SetEnvIfNoCase user-agent ^ Java. * [NC, OR] SetEnvIfNoCase user-agent ^ Microsoft.URL [NC, OR] SetEnvIfNoCase user-agent ^ MSFrontPage [NC, OR] SetEnvIfNoCase user-agent ^ Offline.Explorer [NC, OR] SetEnvIfNoCase user-agent ^ [Ww] eb [Bb] etil [NC, OR] SetEnvIfNoCase user-agent ^ Zeus [NC]Commande Autoriser, Refuser Permettre de tous Deny from env = bad_bot
Liste des utilisateurs Agent navigateurs, robots et les araignées des moteurs de recherche, annuaires du web, gestionnaire de téléchargement, les robots collecteurs de mails et de mauvais bots peuvent être trouvées à la liste des User-Agents.
3. Pour refuser l'accès à tout le monde, sauf les adresses IP spécifiées
Si pour une raison quelconque vous souhaitez désactiver tout ou autoriser l'accès IP-address séparé pour votre site - ajouter ce code à votre .htaccess fichier:
# Refuser l'accès à tout le monde, sauf les adresses IP spécifiées ErrorDocument 403 http://www.domainname.com Ordre deny, allow Refuser de tous Permettre de 124.34.48.165 Permettre de 102.54.68.123
Ne pas oublier de changer domainname.com sur votre nom de domaine.
4. Mettre en place SEO-Friendly 301 Redirect
Si vous déplacez un nom de domaine (ou un sous-site), ou que vous souhaitez rediriger l'utilisateur vers une page spécifique (s), sans sanctions par les moteurs de recherche en utilisant ce code:
# Mettre en place SEO-Friendly 301 Redirect Rediriger 301 /1/file.html http://www.site.com/2/file.html
Ne pas oublier de changer site.com à votre nom de domaine, et /1/file.html et /2/file.html les répertoires et les pages pertinentes.
5. Créez vos propres pages d'erreur
Lassé de la forme standard de pages d'erreur? Pas de problème - avec le code suivant, vous pouvez facilement créer leur propre page et montrer à l'utilisateur exactement ça:
ErrorDocument 401 /error/401.php ErrorDocument 403 /error/403.php ErrorDocument 404 /error/404.php ErrorDocument 500 /error/500.php
<Veillez à créer dans le dossier d'erreur de répertoire racine de votre serveur et le placer dans les fichiers appropriés. / P>
6. Créer une liste noire d'adresses IP
Fatigué des commentaires de spam, ou un utilisateur particulier? Il suffit de bloquer l'IP avec le code suivant ajouté au .htaccess fichier.
# Créer une liste noire des adresses IP permettre de toute deny from 145.186.14.122 refuser de 124.15.
En savoir commentateurs adresse IP peut être soit dans les logs Apache ou en utilisant le service de statistiques. Beaucoup CMS ont leurs propres outils intégrés pour surveiller les adresses des visiteurs. Par exemple, dans les commentateurs Drupal adresses IP peuvent être trouvés dans le panneau d'administration - Rapports.
7. Installez l'adresse e-mail à l'administrateur par défaut
Utilisez ce code pour définir l'adresse e-mail par défaut pour l'administrateur du serveur.
# Définissez l'adresse e-mail à l'administrateur par défaut ServerSignature EMail SetEnv SERVER_ADMIN [email protected]
Ne pas oublier de remplacer [email protected] - votre adresse e-mail.
8. protéger certains fichiers
Le code suivant permet de refuser l'accès à tout fichier - à la demande sera donnée une erreur 403. Par exemple, je fermai l'accès au fichier htaccess, élever le niveau global de sécurité du site.
# Protéger fichier .htaccesspour permettre, refuser deny from all
9. Compresser articles utilisant mod_deflate
Comme une alternative à l'aide de fichiers compressés Gzip, vous pouvez utiliser mod_deflate (probablement plus rapide). Placez le code suivant au début de votre fichier .htaccess (ou vous pouvez ajouter une liste .jpg | .gif | .png | .tiff | Ico):
articles # Compresser utilisant mod_deflateSetOutputFilter DEFLATE
10. Ajout de la durée de vie des titres
Ce code vous permet d'ajouter une chronologie de la vie dans les titres:
# Ajouter les titres à viejeu d'en-tête Expire «Wed, 21 mai 2010 20:00:00 GMT»
11. Réglez la page par défaut
En règle générale, la page par défaut est index.html, mais en utilisant ce code, vous pouvez définir la valeur par défaut de toute autre page.
# Définir la page alternative par défaut DirectoryIndex about.html
12. dossiers protégés par mot de passe et les fichiers
Vous pouvez activer l'authentification par mot de passe pour l'accès à tout dossier ou fichier sur votre serveur, en utilisant le code suivant:
# Protection par mot de passe du fichierAuthType Basic AuthName «Prompt» AuthUserFile /pub/home/.htpasswd Require valid-user # Mot de passe protéger des dossiers réside AuthType de base AuthName «Ce répertoire est protégé» AuthUserFile /pub/home/.htpasswd AuthGroupFile / dev / null Require valid-user
Afin de permettre l' accès au fichier avec un mot de passe, vous devez créer un fichier .htpasswd et ajoutez-y un couple de login et mot de passe dans le format utilisateur: mot de passe.
Cependant, dans ce cas, les mots de passe sont stockés en texte clair, ce qui est pas très bon en termes de sécurité. Par conséquent, le mot de passe crypté optimal. Pour cela, utilisez les dossiers des services pour générer des fichiers .htpasswd. Par exemple, comme celui - ci .
Dans cet exemple, le fichier de mot de passe est l'accès au répertoire racine d'un site appelé .htpasswd. Le répertoire est spécifié à partir de la racine du serveur, et si le chemin est incorrect - Apache, ne permet pas d' accéder au fichier, refuser l' accès à tout dossier utilisateur - que Chiles et celui qui a introduit la bonne paire de connexion: mot de passe.
13. Redirect de l'ancien domaine - nouveau
Utilisation de .htaccess, vous pouvez configurer une redirection de l'ancien domaine vers le nouveau, en ajoutant le code suivant:
# Rediriger de l'ancien domaine old.com - nouveau RewriteEngine On RewriteRule ^ (. *) $ Http://www.new.com/$1 [R = 301, L]
Redirection est utilisé si vous transférez votre site existant à un nouveau nom de domaine. Dans ce cas, tout utilisateur qui compose dans la barre d'adresse www.old.com - sera redirigé vers www.new.com.
14. Améliore la mise en cache
En utilisant cette règle ne signifie pas une accélération de téléchargement direct de votre site. Il est conçu pour accélérer le chargement du site - pour lui déjà visité le visiteur en envoyant 304 état pour les éléments qui ne sont pas mises à jour.
# Renforce la mise en cache FileETag MTime TailleExpiresActive sur ExpiresDefault «accès plus 1 année"
Ainsi, lorsque vous rechargez la page du navigateur du visiteur ne sera pas re-télécharger des images, des scripts et CSS, et affiche les fichiers qui sont déjà stockés dans sa mémoire cache. Vous pouvez modifier la durée de vie du cache, en ajustant sa valeur au cours des années (année), mois (mois) ou, par exemple - secondes (secondes). Exemple Set 1 an.
15. composants Compresser en incluant le site Gzip
En utilisant Gzip, le serveur va compresser les fichiers avant de les envoyer à l'utilisateur, ce qui explique pourquoi votre site se charge plus rapidement.
# Compresser composants en incluant le site Gzip AddOutputFilterByType DEFLATE texte text / html / plain .. .. Texte / xml demande application / xml / xhtml + xml .. .. Texte / javascript text / css application / x-javascript BrowserMatch ^ Mozilla / 4 gzip-only-text / html BrowserMatch ^ Mozilla / 4.0 [678] no-gzip BrowserMatch bMSIE! No-gzip! Gzip-only-text / html
Notez s'il vous plaît que l'inclusion de la compression entraîne une plus grande charge sur le processeur de serveur. Il ligne de AddOutputFilterByType est enregistré dans une longue ligne avec deux inférieurs (tous .. doit être retiré).
16. Retirez la «catégorie» dans l'URL
Pour modifier les liens sur yourdomain.com/blue yourdomain.com/category/blue, il suffit d' ajouter le code suivant à la fin de votre fichier .htaccess.
# Supprimer la catégorie de l'URL RewriteRule ^ catégorie /(.+)$ http://www.site.com/$1 [R = 301, L]
Ne pas oublier de changer www.site.com sur votre nom de domaine.
17. Ne pas afficher le contenu d'un dossier
Pour restreindre l'accès à des répertoires qui peuvent contenir une variété d'informations et pour assurer la sécurité du serveur, ajouter ce code dans le fichier .htaccess
# Refuse d'afficher le contenu d'un dossier Options Tous -Indexes
18. Rediriger votre flux RSS à FeedBurner
Nous allons montrer comment le faire sur l'exemple de Drupal RSS-bande sur le service Google Feedburner.
# Redirection Drupal flux RSS à FeedBurnerRewriteEngine sur RewriteCond% {HTTP_USER_AGENT}! FeedBurner [NC] RewriteCond% {HTTP_USER_AGENT}! FeedValidator [NC] RewriteRule ^ rss.xml $ http://feeds.feedburner.com/yourfeed [R = 302, NC, L]
Dans un premier temps , vous devez enregistrer un flux de votre blog lorsque Feedburner . Ensuite, ne pas oublier de remplacer yourfeed sur votre nom de bande est déjà dans Feedburner.
19. commentaires Forbid des utilisateurs sans Referrer
Les robots collecteurs de mails les plus courants se réfèrent directement aux commentaires de fichiers, tels que wp-comments-post.php, sans aller à la page des enregistrements de votre blog. Le code suivant vous permet de bloquer les commentaires envoyés par les utilisateurs qui sont venus "de nulle part", ne permettant que des commentaires sur ces lecteurs qui sont passés à une page sur votre blog avec toutes les autres pages (par exemple, les résultats de recherche Google).
# Interdisez commentaires des utilisateurs sans Referrer RewriteEngine On RewriteCond% {REQUEST_METHOD} POST RewriteCond% {REQUEST_URI} .comment \ / réponse \ / * RewriteCond% {HTTP_REFERER} !. * Yourblog.com. * [OR] RewriteCond% {HTTP_USER_AGENT} ^ $ (. *) RewriteRule ^ Http: //% {REMOTE_ADDR} / $ [R = 301, L]
Ne pas oublier de remplacer yourblog.com sur le nom de domaine de votre blog.
20. Retirez l'extension de fichier à partir de l'URL
Ce code vous permet de supprimer l'extension de fichier .php (vous pouvez le modifier à tout autre, par exemple - .html) de l'adresse URL de la page.
# Retirez l'extension de fichier à partir de l'URL RewriteRule ^ (([^ /] + /) * [^.] +) /$1.php $ [L]
21. site Protect
Ce code vous permet de protéger le site de scripts indésirables enjection et _request modifications et / ou GLOBALS:
# Mettez des liens de suivi sim Options + FollowSymLinks # Run url_rewriting RewriteEngine On # Bloquer tous les liens contenant le <script> RewriteCond% {QUERY_STRING} (\ <|% 3C) * Script *. (\.> |% 3E) [NC, OR] # Bloquer tous les scripts qui tentent de modifier les variables PHP Globals: RewriteCond% {QUERY_STRING} GLOBALS (= | \ [| \% [0-9A-Z] {0,2}) [OR] # Bloquer tous les scripts qui tentent de modifier un _REQUEST variables: RewriteCond% {QUERY_STRING} _REQUEST (= | \ [| \% [0-9A-Z] {0,2}) # Rediriger tous semblables à la page avec l'erreur 403 - Interdit RewriteRule ^ (. *) $ Index.php [F, L]
22. visiteurs de redirection utilisant la directive RedirectMatch et des expressions régulières
Une autre directive utile est recommandé d'utiliser - RedirectMatch. Citation: "Cette directive permet à une adresse demandée à utiliser une expression régulière (ne pas envoyer" un document ", et" tous les documents, tels que ... »). Rediriger apparence - le navigateur est informé de la nécessité de charger une autre page.
Syntaxe:
RedirectMatch [état] regexp URL
Les valeurs de l'état (code du serveur Web retour) norme:
permanent (301 - redirection permanente), la température (302 - redirection temporaire, viennent à nouveau), seeother (303 - pour voler, il y a beaucoup de délicieux), allé (410 - pour toujours).
exemple:
La même redirection de l'ancien domaine de la nouvelle connexion sans RewriteEngine:
RedirectMatch 301 ^ (. *) $ Www.domainname.com/$1
J'ajouterais que vous pouvez utiliser non seulement http-état, mais aussi d' autres conditions:
RedirectMatch (. *) \ Gif $ http :. //www.myserver.com$1.png RedirectMatch $ Http (* \ Jpg..): //www.myanother.com$1
Assurez-vous de faire une copie de sauvegarde du fichier .htaccess avant de faire des changements, puis tester l'ensemble du site - après l'ajout de nouvelles lignes.
23. Protection de liens directs vers des images via .htaccess
Hotlink (Hotlink) - insérer les liens d'images en direct ou des fichiers d'un site à l'autre. Cette technique est utilisée assez souvent, ainsi, par exemple, sur votre serveur ne dispose pas de suffisamment d'espace pour les photos et que vous utilisez un service gratuit pour le stockage des fichiers d'image, à savoir, télécharger une photo, vous obtenez l'URL et collez-le dans votre site web.
Le résultat: vous économiser de l'espace pour votre site et utiliser la bande passante pour l'hébergement de photos, mais ce ne sont pas vos affaires. Mais si quelqu'un a décidé que votre site peut être utilisé comme un service similaire.
Comment ne pas devenir un fournisseur d'images libres et fichiers?
Y at-il la protection de celui-ci? Oui, il est! Pour éviter d' autres sites Web pour utiliser votre trafic et / ou tout simplement relier directement à vos fichiers (images), puis ajouter les lignes suivantes à votre fichier .htaccess:
# Désactiver d'autres sites utilisent des liens directs vers vos photos RewriteCond% {HTTP_REFERER}! ^ $ # Ensuite, la liste des domaines autorisés % RewriteCond {HTTP_REFERER} ^ http (s):. (. Www) ?? // sitename.ru * $ [NC] RewriteCond% {HTTP_REFERER} ^ http (s):? // (Www.) Sitename.ru:?. 80 * $ [NC] Site IP # (domaine) RewriteCond% {HTTP_REFERER} ^ http (s):? //111.111.111.111.*$ [NC] RewriteCond% {HTTP_REFERER} ^ http (s):? //111.111.111.111 :. 80 * $ [NC] RewriteCond% {HTTP_REFERER} ^ http (s): (. Www) ?? // yandex.ru [NC] RewriteCond% {HTTP_REFERER} ^ http (s):? // (. Www) Google ?. [NC] # RewriteCond% {HTTP_REFERER} ^ http (s):? // (Www.) [NC] sayta.ru Domen_druzhestvennogo? RewriteCond% {HTTP_REFERER}! Rechercher? Q = cache [NC] # Les formats de fichiers pour lesquels la protection est réglé # Prints erreur 403 . # RewriteRule \ (Jpe g | bmp | gif | png | css | mov | swf | dcr | exe | rar | avi | vob | zip | pdf | txt | doc | flv | mp3 |? Mp4) $ - [NC, F, L] # Ou au lieu des spectacles ci-dessus spetsrisunok . RewriteRule * \ (jpe g |? Bmp | gif | png). Fichiers $ / images / nohotlink.jpg [NC, L]
En conséquence, tous les autres sites auront un 403 Forbidden (accès refusé), et votre bande passante est plus "ne fonctionne pas pour les autres."
24. ImageCache et la protection contre les hotlinks par .htaccess
Pour ImageCache le paragraphe précédent ne fonctionne pas, nous avons donc ajouter les paramètres suivants:
SetEnvIfNoCase Referer «^ $» local_ref = 1 # autorisés domaines # Suivant accepté domaines SetEnvIfNoCase Referer «^ http // :? (. Www \) domaine \ .ru» local_ref = 1 SetEnvIfNoCase Referer «^ http: // (. Www \) Domaine \ .com» Local_ref = 1 Les extensions de fichier # que vous souhaitez protéger Les extensions de fichier # que vous souhaitez protégerCommande Autoriser, Refuser Allow from env = local_ref
Maintenant que nous avons et protection contre les hotlinks et le module ImageCache - ensemble , ils fonctionnent parfaitement. Un «mais» - de telle manière que vous ne pouvez pas tourner pour donner une autre image; seulement pour protéger son image, ce qui est le but principal.
25. Non seulement cela?
- Encyclopédie sur .htaccess en russe ;
- Htaccess tutoriel officiel Apache ;
- 12 Autres astuces utiles .htaccess ;
- Des solutions pratiques pour l'utilisation du fichier .htaccess ;
- Guide de .htaccess; Comprehensive ;
- Guide de démarrage pour les fichiers .htaccess ;
- Tenter nombre de fois pour créer un .htaccess presque parfait .
Commentaires
Commentant, gardez à l' esprit que le contenu et le ton de vos messages peuvent blesser les sentiments des gens réels, montrer du respect et de la tolérance à ses interlocuteurs, même si vous ne partagez pas leur avis, votre comportement en termes de liberté d'expression et de l' anonymat offert par Internet, est en train de changer non seulement virtuel, mais dans le monde réel. Tous les commentaires sont cachés à l'index, le contrôle anti - spam.