Apache ferme l'accès au dossier. Restreindre l'accès à l'aide du fichier .htaccess. Directives du module Mod_rewrite

Si vous souhaitez savoir comment bloquer l'accès IP à un site à des personnes indésirables, des spammeurs et autres, vous devez alors créer ou modifier un fichier. .htaccess et utilisez la syntaxe Order Allow,Deny ou Order Deny,Allow. Il y a une différence entre eux :

  • Commande Autoriser, Refuser
    Les règles d'autorisation seront traitées en premier, puis les règles de refus seront traitées, et tout ce qui n'en relève pas sera interdit ;
  • Commande refusée, Autoriser
    Les règles de refus seront traitées en premier, puis les règles d'autorisation seront traitées, et tout ce qui n'en relève pas sera autorisé par défaut.

Faites attention à la syntaxe, pas d'espaces supplémentaires, sinon vous risquez d'obtenir une erreur interne du serveur 500.

Si cela s'applique à l'ensemble du site, le fichier est créé à la racine ; si vous devez en fermer seulement une certaine partie, par exemple le panneau d'administration, le fichier .htaccess doit se trouver directement dans cette section.
Eh bien, et bien sûr, votre serveur (backend ou travailleur) doit être . Si votre serveur fonctionne + php-fpm, alors vous devrez éditer le fichier de configuration nginx.

Bannir un spammeur par plage IP

Refuser la commande, autoriser le refus à partir de 192.168.1.1

C'était un exemple de la façon de bannir l'adresse IP (192.168.1.1) d'un spammeur sans refuser l'accès à tout le monde. Vous pouvez également ignorer le dernier octet de l'adresse IP, Refuser à partir de 192.168.1, toutes les adresses IP ignorées seront alors bannies. Cependant, vous comprenez, il est stupide de bloquer une IP statique, elle est très probablement dynamique, nous prenons donc l'IP et allons déterminer le sous-réseau avec la plage IP d'où elle provient. Pour ce faire, nous utiliserons n'importe quel service Whois, par exemple celui-ci, chercherons la chaîne CIDR ou, si elle n'existe pas, NetRange

Refuser l'accès au panneau d'administration

Pour refuser l'accès au panneau d'administration à tout le monde sauf votre IP, dans htaccess, qui doit se trouver dans la section admin, vous devez écrire :

Autoriser la commande, refuser l'autorisation à partir de 192.168.0.0/16

Où 192.168.0.0/16 est votre adresse IP ou sous-réseau

Voici, disons, une option pour WordPress. Le fichier .htaccess est créé dans /wp-admin/

Autoriser tous Autoriser la commande, refuser l'autorisation à partir de 192.168.0.0/16

Veuillez noter que la construction des fichiers "admin-ajax.php" est utilisée ici. Il est nécessaire que les requêtes ajax passent.

Refuser l'accès aux fichiers via IP

Voici un exemple de la façon dont vous pouvez protéger votre zone d’administration WordPress contre les attaques de pirates. La construction "expression régulière" FilesMatch est utilisée ici

.htaccess est un document qui contrôle l'accès à divers fichiers et dossiers d'un site, ainsi qu'au site dans son ensemble. Lors de la navigation vers une page qui n'est pas accessible via .htaccess , l'utilisateur verra une page de service avec un code d'erreur 404.

Comment modifier .htaccess

Comment bloquer l'accès à un site pour tout le monde

Pour bloquer complètement l'accès au site, ajoutez ce qui suit au .htaccess :

refuser de tous # Refuse l'accès au site à toutes les adresses IP

Comment autoriser uniquement une adresse IP spécifique à accéder à un site Web

Pour fermer complètement le site pour toutes les IP sauf une, ajoutez au .htaccess :

refuser de tous # Refuse l'accès au site à toutes les adresses IP autoriser à partir de XXX.XXX.XXX.XXX # Autorise l'accès pour l'adresse IP spécifiée. S'il existe plusieurs adresses IP, séparez-les par un espace.

Comment restreindre l'accès à un site Web uniquement à une adresse IP spécifique

Pour bloquer complètement l'accès au site pour une IP, ajoutez au .htaccess :

deny from XXX.XXX.XXX.XXX # Refuse l'accès à l'adresse IP spécifiée. S'il existe plusieurs adresses IP, séparez-les par un espace.

Comment contrôler l'accès à un fichier spécifique

Si vous souhaitez que différents fichiers du site aient des paramètres d'accès différents, vous pouvez utiliser la commande . Par exemple, pour bloquer l'accès au fichier wp-config.php à tout le monde sauf vous, ajoutez à .htaccess :

order deny,allow # Détermine l'ordre dans lequel les autres commandes sont exécutées. Maintenant, l'autorisation est exécutée après le refus. refuser de tous # Refuse l'accès au fichier à toutes les adresses IP autoriser à partir de XXX.XXX.XXX.XXX # Autorise l'accès pour l'adresse IP spécifiée. S'il existe plusieurs adresses IP, séparez-les par un espace.

De la même manière, vous pouvez bloquer l'accès à vous-même.

Le fichier de configuration supplémentaire.htaccess est également souvent utilisé pour restreindre l'accès à un site, à des sections d'un site ou à des fichiers spécifiques situés sur le serveur.

Pour refuser l'accès à l'ensemble du site, vous devez écrire ce qui suit dans le fichier .htacces :



Refuser l'accès uniquement à partir d'une adresse IP spécifique :


nier de tous
ordre autoriser refuser
nier de tous
nier de adresse_ip_utilisateur


"adresse_ip_utilisateur" doit être remplacé par une adresse IP spécifique.

Pour autoriser l'accès uniquement à partir d'une adresse IP spécifique, vous pouvez écrire :


ordre autoriser refuser
nier de tous
autoriser depuis user_ip_address


Vous pouvez également refuser l'accès à un fichier spécifique à l'aide du fichier .htaccess. Par exemple, nous refuserons l’accès des utilisateurs au fichier .htaccess lui-même. Dans ce cas, le serveur pourra utiliser les instructions précisées dans le fichier :


< Fichiers .htaccess >
commande autoriser, refuser
nier de tous

Protection des fichiers

Il est probable que tous les internautes soient tombés sur les mêmes articles sur différents sites. Il arrive souvent que ces articles soient simplement volés sur d'autres ressources. Les moteurs de recherche tentent de gérer les pages en double, mais leur choix de la source d'origine n'est pas toujours correct. Et c'est un problème sérieux pour les rédacteurs et les webmasters, car rédiger du contenu de haute qualité demande parfois beaucoup d'efforts et de temps, et il est très désagréable de recevoir des pénalités de la part des moteurs de recherche pour quelqu'un qui copie le contenu de votre site. Et souvent, en plus du texte, des images sont également volées. De plus, de nombreux voleurs, afin de ne pas surcharger leur serveur, ne téléchargent pas d'images depuis d'autres sites, mais créent simplement des liens vers des fichiers situés sur le site source. L'insertion d'un lien vers un fichier situé sur un autre site s'appelle un hotlink. En plus des liens vers des images, il peut également y avoir des liens vers d'autres fichiers, par exemple disponibles en téléchargement. De tels hyperliens ne sont pas seulement extrêmement désagréables pour l’auteur du contenu. Ils surchargent également le serveur source.

Vous pouvez protéger les fichiers d'un hotlink à l'aide du fichier .htaccess en y ajoutant deux lignes :



votre_site.ru.*$


Entre parenthèses séparées par le symbole "|" sont indiquées les extensions de fichiers dont l'accès sera refusé à tous sauf aux utilisateurs du serveur et du site votre_site.ru

Pour ouvrir l'accès aux fichiers avec cette extension aux utilisateurs des moteurs de recherche, vous devez lever leur interdiction de la même manière que sur votre_site.ru :


RéécritureCond %(HTTP_REFERER) !^$
RewriteCond %(HTTP_REFERER) !^http(s)?://(www.)? votre_site.ru
RewriteCond %(HTTP_REFERER) !^http(s)?://(www.)?yandex.ru
RewriteCond %(HTTP_REFERER) !^http(s)?://(www.)?yahoo.
RewriteCond %(HTTP_REFERER) !^http(s)?://(www.)?google.
RewriteCond %(HTTP_REFERER) !^http(s)?://(www.)?bing.
RewriteRule \.(jpe?g|bmp|gif|png|css|zip|pdf|txt|doc)$ -

Mot de passe de protection

A l'aide du fichier de configuration supplémentaire.htacces, il est possible de définir un mot de passe pour un répertoire du site, un fichier spécifique ou un groupe de fichiers avec la même extension. Pour définir un mot de passe pour un répertoire, dans .htaccess vous devez écrire :


Nom d'authentification" Que veux-tu?"
Type d'authentification de base
AuthUserFichier
nécessite un utilisateur valide


Le fichier .htaccess contenant ces lignes doit être placé dans le répertoire auquel on souhaite bloquer l'accès. Lorsqu'un utilisateur tente d'accéder à la section correspondante du site, le serveur donnera un code d'état 401 (autorisation requise) et affichera une fenêtre avec des champs pour saisir un nom d'utilisateur et un mot de passe et le message « Que voulez-vous ? » spécifié dans la directive « AuthName » (uniquement les caractères latins et les chiffres).

Les noms d'utilisateur et les mots de passe sont stockés dans le fichier .htpasswd. Le chemin d'accès à ce fichier est spécifié dans la directive "AuthUserFile".

Important: Le chemin d'accès au fichier .htpasswd est spécifié comme absolu, à partir du répertoire racine du serveur.

Pour connaître le chemin vers .htpasswd, qui doit être précisé dans .htaccess, vous pouvez créer un fichier php contenant :


< ?php echo $_SERVER["DOCUMENT_ROOT"]; ? >


Téléchargez ce fichier sur le serveur au même endroit où se trouve .htpasswd et ouvrez-le dans le navigateur. Dans la page générée, vous verrez le chemin absolu vers le répertoire spécifié à partir du répertoire racine du serveur.

Vous pouvez définir un mot de passe pour un fichier spécifique comme suit :


< Fichiers fichier.txt >
AuthName "Ce n'est pas pour tout le monde"
Type d'authentification de base
AuthUserFichier /home/server/your_site.ru/pass/.htpasswd


Mot de passe pour un groupe de fichiers :


< Fichiers "\.(sql)$" >
AuthName " Ce n'est pas pour tout le monde "
Type d'authentification de base
AuthUserFichier /home/server/your_site.ru/pass/.htpasswd


Dans ce cas, tous les fichiers portant l'extension .sql ne seront accessibles qu'avec un mot de passe.



Attention!
J'espère que vous penserez à faire une copie du fichier existant .htaccess, et alors seulement vous réaliserez vos expériences.
Si vous n'aimez pas le résultat de votre créativité, remettez simplement l'ancien à sa place. Qu'il s'agisse d'un fichier auxiliaire, un fichier surchargé peut ralentir le serveur. Générateur.htaccess

.htaccess

Le fichier .htaccess contient les paramètres utilisateur du serveur Web et est analysé à chaque requête adressée au serveur.
Sur un hébergement mutualisé, il est le plus souvent utilisé pour :
  • mots de passe d'annuaire,
  • redirections de pages,
  • personnaliser vos propres pages d'erreur,
  • définitions d'encodage,
  • interdictions et autorisations,
  • et etc.
Il s'agit d'une configuration flexible du serveur Web Apache.
En l'utilisant, vous pouvez remplacer de nombreuses directives du fichier httpd.conf (le fichier de configuration principal du serveur Apache).
Si le fichier .htaccess se trouve dans le répertoire racine du serveur, ses actions s'appliquent à l'ensemble du serveur, à l'exception des dossiers où se trouve un autre fichier .htaccess.

Éditeur

Vous pouvez créer des fichiers .htaccess dans le Bloc-notes ou dans l'éditeur intégré Far, WindowsCommander, TotalCommander.
Je l'édite avec Notepad++ ou Akelpad, que j'utilise pour écrire ce site.

Codage

Comment définir l'encodage russe. AddDefaultCharset utf-8
Détermination de l'encodage pour certains types de fichiers AddType "text/html; charset=koi8-r" .html .htm .shtm Détermination de l'encodage des fichiers téléchargés CharsetSourceEnc utf-8 Désactiver l'enregistrement si lors du chargement avec un script, les fichiers binaires (images, archives) ne se chargent pas (se cassent), créez un fichier .htaccess et placez-le dans le dossier où vous souhaitez désactiver la fonction, écrivez-y la ligne : CharsetRecodeMultipartForms désactivé
AddDefaultCharset UTF-8

Objectif de la page de démarrage. DirectoryIndex index.html Plusieurs pages peuvent être spécifiées. DirectoryIndex index.html index.php index.shtml map.html Lorsqu'un répertoire est interrogé, il sera recherché dans l'ordre dans lequel il est répertorié dans la directive DirectoryIndex. Si le fichier index.html n'est pas trouvé, alors le fichier index.php sera recherché, etc.

Autorisation/interdiction

autoriser l'accès à partir d'une adresse IP spécifique. ordre autoriser refuser
nier de tous
permettre à partir de 000.000.000.000
refuser l'accès à partir d'une adresse IP spécifique. ordre autoriser refuser
permettre à tous
refuser à partir de 000.000.000.000
bloquer le visionnage pour tout le monde. nier de tous permettre à tout le monde de voir. permettre à tous Refuser l'accès à un fichier spécifique.
nier de tous
Refuser l'accès aux fichiers avec une extension spécifique.
nier de tous
Refuser l'accès aux fichiers avec plusieurs extensions.
nier de tous
? - n'importe quel personnage
* - toute séquence de caractères, à l'exclusion du caractère / (barre oblique). Accès optimisé. Il y a un répertoire a1 et il y a deux sous-répertoires a2, a3, 2 niveaux d'utilisateurs ont été introduits. Le groupe 1 a accès uniquement à a1 et a2, le groupe 2 a accès aux trois répertoires. Il n'est nécessaire de s'authentifier qu'une seule fois - lors de l'accès à a1, mais en même temps de respecter les droits d'accès à a2 et a3.
Le pseudo et le mot de passe ne sont demandés que lors de la connexion à a1 - si l'utilisateur a accès à a2, le mot de passe n'est plus demandé. S'il n'y a pas d'accès à A3, le signe « entrer le mot de passe » apparaîtra. www.site.ru/a1
www.site.ru/a1/a2
www.site.ru/a1/a3
a1 est général et en même temps fermé. a2 et a3 sont réservés aux particuliers. Fichier .htaccess pour le répertoire a1 : AuthName "Saisir le mot de passe"
Type d'authentification de base


nécessite un utilisateur valide

Fichier .htaccess pour le répertoire a2 : AuthName "Saisir le mot de passe"
Type d'authentification de base
AuthUserFile "/pub/home/login/htdocs/clousarea/.htpasswd"

nécessite l'utilisateur utilisateur1 utilisateur2 utilisateur3
Fichier .htaccess pour le répertoire a3 : AuthName "Saisir le mot de passe"
Type d'authentification de base
AuthUserFile "/pub/home/abv/htdocs/clousarea/.htpasswd"

nécessite l'utilisateur utilisateur1 utilisateur4 utilisateur5

Redirection (redirection)

Les chemins d'accès aux fichiers et répertoires doivent être spécifiés à partir de la racine du serveur, par exemple /pub/home/server1/html/
Les noms de domaine doivent inclure des protocoles (http://, http://, ftp://). Si vous ne connaissez pas le chemin depuis la racine du serveur, vous pouvez le trouver en demandant à l'administrateur du serveur, ou vous pouvez le rechercher créez-vous en exécutant sur le site une fonction PHP - phpinfo(). Il affichera la configuration PHP dans des tableaux violets. Dans ceux-ci, vous devez trouver la variable doc_root et regarder sa valeur - ce sera le chemin de la racine du serveur vers votre répertoire principal. Redirection (redirection) uniquement lors de la demande de certaines pages. Redirection /location/from/root/file.ext http://www.serv.ru/new/file/location.xyz /location/from/root/file.ext- c'est le chemin d'accès au fichier racine (vers le fichier souhaité). www.serv.ru/new/file/location.xyz c'est l'endroit où se rendra l'utilisateur en demandant le fichier file.txt. Si le fichier se trouve dans le répertoire racine, alors au lieu de location/from/root/ vous pouvez immédiatement mettre : /oldfile.html et si le fichier est dans un sous-répertoire, il ressemblera à ceci : /old/oldfile.html Redirection vers le dossier ( par exemple dossier ancien). Redirection /oldfolder http://www.serv.ru/newfolder demande www.oldserv.ru/oldfolder/images/smile.gif,
tombera sur www.serv.ru/newfolder/images/smile.gif. Redirection globale (redirection) vers une autre adresse. Redirection / http://www.newsite.ru Rediriger (rediriger) uniquement les visiteurs avec une adresse IP spécifique. SetEnvIf REMOTE_ADDR 192.145.121.1 REDIR="redir"
RewriteCond %(REDIR) redir
RewriteRule ^/$ /only_for_you.html

Supprimer WWW

Le fait est que les gens peuvent par habitude saisir l’adresse de votre site à partir de WWW. ou gagner du temps sans WWW.
Pour Yandex et Google, http://your-site.com et http://www.your-site.com sont des sites différents. Et par conséquent, vous aurez un faible indice de citation. Ceci est résolu avec le code suivant. Si vous souhaitez que votre adresse provienne toujours de WWW. (plus habituel), puis le code : Réécrire le moteur activé
Options + Suivre les liens symboliques
RéécrireBase /
RewriteCond %(HTTP_HOST) ^votre-site.com$
RewriteRule ^(.*)$ http://www.votre-site.com/$1
Au lieu de votre-site.com, nous écrivons votre adresse.

Mot de passe

Mot de passe de protection. AuthName "Nom de la section" AuthType Basic AuthUserFile /full/path/to/.htpasswd Nécessite un utilisateur valide Vous devez le modifier pour votre site. Par exemple, remplacez le nom de la section par votre nom (par exemple - Zone membres). /full/path/to/.htpasswd - chemin complet vers le fichier .htapasswd (nous en parlerons plus tard). Si vous ne connaissez pas le chemin complet, contactez votre administrateur système. Fichier.htpasswd Pour protéger un répertoire avec un mot de passe, vous devez créer un fichier contenant les identifiants et les mots de passe qui seront autorisés à visiter le site. Et entrez-le dans le fichier .htpasswd. Créez des noms d'utilisateur et des mots de passe. Saisissez les noms d'utilisateur et mots de passe suivants. manière : nom d'utilisateur : mot de passe mot de passe (mot de passe) version cryptée du mot de passe.
Pour crypter le fichier .htpasswd, vous devrez utiliser un script prêt à l'emploi ou l'écrire vous-même. Si vous avez besoin de plusieurs utilisateurs, écrivez-les ligne par ligne. Dès que vous entrez dans un répertoire protégé par mot de passe, une fenêtre contextuelle apparaîtra pour vous permettre de saisir votre identifiant et votre mot de passe. Ou vous pouvez simplement saisir dans le champ d'adresse : nom d'utilisateur: [email protégé]/annuaire

Accélérer un site Web avec gzip

Cette compression réduit la taille de vos fichiers, et par conséquent réduit le trafic des visiteurs, votre site s'ouvre plus rapidement. Mais cela ne convient qu'aux sites de petite et moyenne taille, car vous augmentez la charge sur le serveur. AddOutputFilterByType DEFLATE texte/texte html/texte brut/application xml/xml
application/xhtml+texte xml/texte JavaScript/application css/x-JavaScript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0 sans gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html

Comment forcer Apache à traiter les directives SSI ? Les SSI vous permettent « d'assembler » une page à partir de morceaux. Dans un morceau vous avez le code du menu, dans un autre le code du haut de la page, dans le troisième - le code du bas. Et le visiteur voit une page normale, composée du code inclus dans vos pièces. Paramètres requis dans httpd.conf :
Dans le bloc commençant par et se terminant Ajoutez des inclusions à la ligne Index d’options.
puis dans le fichier .htaccess on écrit : .shtml .shtm .html .htm analysé par le serveur AddHandler Pour empêcher l'utilisateur de voir la liste des fichiers d'un dossier s'il ne contient aucun fichier d'index, ajoutez la ligne : Options -Index Exécuter du code PHP dans des fichiers avec une extension différente. Parfois, il est utile de « tromper » le visiteur en lui donnant vos scripts PHP ou d’autres fichiers, comme des fichiers html. Il est en fait utilisé pour indexer les scripts PHP par le moteur de recherche Rambler. RemoveHandler.html.htm
AddType application/x-httpd-php .php .htm .html .phtml
Veuillez noter que puisque les fichiers avec l'extension .html et .htm sont associés au fait qu'il s'agit de fichiers avec un balisage hypertexte, la première ligne nous supprimons cette association et ajoutons le traitement de ces fichiers par l'interpréteur php. Si le trafic du serveur est élevé, de telles astuces peuvent provoquer des ralentissements. Demandez à l'administrateur. Erreur 404... Si aucun fichier ne signale une erreur, le visiteur verra le contenu de votre site, comme dans l'Explorateur. Vous avez probablement vu une image similaire à celle ci-dessous :
Vous pouvez créer un fichier spécial avec des liens vers votre site, et non vers l'hébergeur. Appelez-le 404.html et placez-le dans le répertoire racine.
La taille de la page d'erreur doit être supérieure à 511 octets, sinon Internet Explorer risque d'afficher sa propre page décrivant l'erreur. Document d'erreur 404 /404.html
Document d'erreur 403 /403.html
Document d'erreur 401 /401.html
Document d'erreur 500 /500.html
Vous pouvez spécifier un autre fichier qui s'ouvrira automatiquement lorsqu'une erreur se produit.
Le plan du site est le fichier idéal pour gérer l'erreur 404 (fichier introuvable). Document d'erreur 404 /map.html registre_globals Si votre formulaire de courrier ne fonctionne pas, peut-être que register_globals n'est pas activé, alors ajoutez la ligne : php_flag register_globals on Ou php_flag register_globals off si vous souhaitez le désactiver.

TÉLÉCHARGEMENT FORCÉ DE CERTAINS FICHIERS

Vous pouvez forcer le téléchargement de certains fichiers (MP3, EPS, XLS...) au lieu de laisser le navigateur décider quoi faire. Autrement dit, prenez une décision à sa place.
Ce morceau de code forcera le téléchargement des fichiers .xls et .eps depuis votre serveur.




Application ForceType/flux d'octets
En-tête défini pièce jointe Content-Disposition

PROTECTION CONTRE LES HOTLINKS

Lien hypertexte- c'est à ce moment-là qu'ils mettent un lien direct vers votre contenu depuis un autre site.
Souvent cette situation est indésirable, vous ne voulez pas payer pour le trafic d’un autre site, et pour l’éviter utilisez : Référent SetEnvIfNoCase "^http://www.test.com" local_ref=1
Référent SetEnvIfNoCase "^http://test.com" local_ref=1

Commande Autoriser, Refuser
Autoriser depuis env=local_ref
Autre variante : RéécritureCond %(HTTP_REFERER) !^$
RewriteCond %(HTTP_REFERER) !^http://www.quux-corp.de/~quux/.*$
RewriteRule .*\.(gif|jpg)$ - [F]

RewriteCond %(HTTP_REFERER) !.*/foo-with-gif\.html$
RewriteRule ^inlined-in-foo\.(gif|jpg)$ - [F]
Une autre option: Réécriture du moteur activé
#Remplacez ?monsite\.com/ par l'URL de votre blog
RewriteCond %(HTTP_REFERER) !^http://(.+\.)?monsite\.com/
RéécritureCond %(HTTP_REFERER) !^$
#Remplacez /images/nohotlink.jpg par l'URL de votre image "ne pas créer de lien hypertexte"
RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]

Les fichiers .htaccess étant des fichiers de service, ils ne sont pas accessibles à l'utilisateur Web depuis le navigateur. Bien que, bien sûr, absolument tout, y compris cette limitation, puisse être réaffecté dans httpd.conf - le fichier de configuration principal du serveur, accessible uniquement à l'administrateur de l'hébergement.

Le fichier Apache .htaccess est relu à chaque accès au serveur Web, de sorte que les modifications apportées à ce fichier prennent effet immédiatement.

Le principal problème lors de l'utilisation des directives .htaccess réside tout d'abord dans les restrictions des hébergeurs, notamment sur les serveurs gratuits, et sur les tarifs initiaux de l'hébergement payant, même si, en règle générale, de nombreuses directives peu gourmandes en ressources et sûres sont déjà autorisées. ici.

Par conséquent, enregistrez le fichier .htaccess original au cas où :))

Habituellement, le fichier .htaccess se trouve dans le répertoire racine et affecte l'ensemble du site et tous les répertoires (s'ils n'ont pas leur propre .htaccess). Si vous devez créer des paramètres Apache spécifiques pour un dossier spécifique, vous devez y placer un nouveau fichier .htaccess et son effet s'appliquera à ce dossier. De plus, le .htaccess situé à la racine du site n’affectera en rien ce dossier dans ce cas.

Comment créer un .htaccess
Juste. Sur votre ordinateur local, créez un document texte .htaccess.txt, téléchargez-le sur l'hôte via FTP et renommez-le en .htaccess

Principales fonctionnalités de htaccess.

Tout d'abord, regardons la directive Order dans le fichier .htaccess du serveur Apache
Description : Définit l’ordre de fonctionnement des directives Deny et Allow.
Commande - traduit par commande. La commande peut prendre les valeurs ou .
Syntaxe - état par défaut :

Commande refusée, Autoriser

Directif Refuser- traduit par interdiction
Description : refuse à certains clients l'accès aux ressources.
Syntaxe:

Refuser de tous|hôte

hôte

Directif Permettre- autoriser la traduction
Description : permet à des clients spécifiques d'accéder aux ressources.
Syntaxe:

Autoriser de tous|hôte

hôte peut prendre des valeurs d'adresse IP ou de nom d'hôte.

.htaccess refuse l'accès à tout le monde

Commande refusée, Autoriser
Nier de tous

.htaccess - autorisation d'accès pour une adresse IP et un hôte spécifiques.

Commande refusée, Autoriser
# interdire à tout le monde d'accéder à la ressource

Nier de tous
# autorise uniquement ce qui suit
Autoriser depuis le local.

.htaccess - refuser l'accès à une adresse IP et un hôte limités.

Commande Autoriser, Refuser
#autoriser tout le monde à rejoindre le serveur

Autoriser tous
Refuser du local.

Si vous devez interdire l'ensemble du réseau 100.99.99.1 - 100.99.99.255, définissez alors la combinaison des premiers lems : 100.99.99

Refuser l'accès à un fichier spécifique.

Directive Files du fichier .htaccess du serveur Apache
L'exemple refuse l'accès au fichier avec passwords.htpasswd à tous les visiteurs sauf 100.99.99.1 et 2

Commande refusée, Autoriser
Nier de tous
Autoriser à partir de 100.99.99.1, 100.99.99.2

Interdire la transmission des données du navigateur à l'aide de la méthode GET.

Dans cet exemple, nous interdirons aux utilisateurs ayant les adresses IP (IP) 100.99.99.1, 100.99.99.2 d'accéder à la ressource en utilisant la méthode GET de transmission de données par le navigateur - .htaccess ip :

Commande Autoriser, Refuser
Refuser du 100.99.99.1, 100.99.99.2
Autoriser de tous

Nous avons empêché l'utilisateur avec l'adresse IP 100.99.99.1 de consulter le site. Si au lieu de 100.99.99.1 vous écrivez 100.99.99, alors l'accès sera refusé pour l'ensemble du réseau de classe C.

Refuser l'accès à un groupe spécifique de fichiers.

Un autre exemple est .htaccess : refuser l’accès à un groupe spécifique de fichiers. L'exemple refuse l'accès aux fichiers avec les extensions "lib" et "pm" à tous les visiteurs sauf 100.99.99.1

# ou par exemple :

Commande refusée, Autoriser
Nier de tous
Refuser du 100.99.99.1

Comment utiliser .htpasswd et .htaccess pour refuser l'accès à un dossier de site.

En utilisant ces deux fichiers, vous pouvez facilement vous assurer que lorsque vous essayez d'ouvrir le site, les utilisateurs sont invités à saisir un identifiant et un mot de passe.
Ce n'est qu'après que l'utilisateur aura saisi correctement la paire login et mot de passe correspondant à celui saisi dans le fichier .htpasswd qu'il sera autorisé à visualiser la zone cachée du site.
Pour ce faire, créez simplement un fichier .htaccess et placez-le dans le dossier du site auquel vous souhaitez refuser l'accès.

Type d'authentification de base
Nom d'authentification "Veuillez saisir votre identifiant et votre mot de passe !"
AuthUserFile/usr/host/monsite/. mot de passe ht
nécessite un utilisateur valide

  • Type d'authentification- peut avoir la valeur Basic ou Digest, dans notre cas Basic nous conviendra.
  • Nom d'authentification- texte affiché avec le formulaire d'autorisation.
  • AuthUserFichier- chemin d'accès au fichier de mots de passe (.htpasswd).
  • Fichier de groupe d'authentification- chemin d'accès au fichier des groupes, s'il existe.
  • Exiger- définit les paramètres d'authentification. (Utilisateur, Groupe, Utilisateur valide) Utilisateur valide – tous ceux qui ont réussi le test. Utilisateur – utilisateurs disposant de droits d'accès. Groupe – groupes d'utilisateurs avec droits d'accès.

Créez un fichier.htpasswd et mettez-y la ligne suivante :

administrateur : $apr1 $ejtOHg / 4 $cMColJLMZ39weAalo3V8k0

Cette ligne contient une paire d'identifiant et de mot de passe où :

Connexion : administrateur
Mot de passe : 1

Pour générer des mots de passe pour le fichier .htpasswd, vous pouvez utiliser utilitaire de génération de mots de passe htpasswd.exe Téléchargez l'utilitaire de génération de mots de passe htpasswd.exe

Utiliser l'utilitaire pour générer des mots de passe est très simple, vous devez créer un fichier .htpasswd et le sélectionner dans le programme à l'aide du bouton " Ancien fichier« . Ensuite, tout est intuitif, saisissez les nouveaux utilisateurs et mots de passe pour eux, puis cliquez sur « Mise à jour« . À propos, cet utilitaire de génération de mots de passe pour htpasswd peut non seulement créer de nouveaux mots de passe, mais également modifier d'anciens mots de passe. Ce qui est très pratique si vous avez oublié votre ancien mot de passe. Il convient également de dire que cet utilitaire est standard et est fourni avec le serveur Apache.

De nombreux sites et blogs vous expliquent comment l'utiliser à l'aide de CMD, mais je n'ai jamais rien vu sur la façon de créer des mots de passe avec son interface graphique, et cela peut être très pratique pour les webmasters débutants.

Note importante! Il sera très utile de placer le fichier de mots de passe en dehors du dossier de contenu du site. Cela le protégera des intrus.

Rediriger les visiteurs lors de la mise à jour du site.

ordre refuser, autoriser le refus de tous autoriser à partir de 123.123.123.123 ErrorDocument 403 /page.html permettre à tous

Remplacez 123.123.123.123 par votre adresse IP, et remplacez également page.html vers la page que les utilisateurs qui visitent le site verront

Page d'erreur 404 spécifique

Lorsque les utilisateurs accèdent à une page de votre site qui n'existe pas, une erreur 404 leur est affichée. Si vous souhaitez en faire une page spécifique, vous devez alors écrire le code suivant dans le fichier htaccess :

Dans ce cas, il est pratique de rediriger les visiteurs vers la page principale du site.

Rediriger vers des pages déplacées ou renommées.

Si vous avez renommé ou déplacé certaines pages du site et souhaitez que les visiteurs voient les nouvelles pages, même s'ils accèdent à l'ancienne adresse, vous devez écrire le code suivant dans le fichier htaccess :

Redirection 301 /old.html http://votresite.com/new.html

Vous pouvez également utiliser une telle redirection pour vous assurer que la page ne sera pas perdue pour les moteurs de recherche.

Interdiction de parcourir les répertoires.

Si vous n'avez pas de fichier dans votre dossier sur le site indice, alors n'importe quel utilisateur peut voir quels fichiers s'y trouvent.

Pour éviter de telles choses, vous devez écrire le code suivant :

Certains hébergeurs ont cette fonctionnalité activée par défaut, auquel cas vous n'avez pas à vous inquiéter.

Créer de belles URL

Utilisation d'un fichier htaccess et d'un module Apache appelé mod_rewrite, vous pouvez refaire vos liens vers des liens plus beaux et plus courts.

Voici quelques exemples avec du code :

RewriteEngine sur RewriteRule ^about/$ /pages/about.html [L] RewriteRule ^features/$ /features.php [L] RewriteRule ^buy/$ /buy.html [L] RewriteRule ^contact/$ /pages/contact. htm [L]

Remplacement des messages d'erreur

L'une des fonctionnalités utiles fournies par Apache est le remplacement des messages d'erreur standard du serveur Web par les vôtres. La directive ErrorDocument est utilisée pour cela.

Document d'erreur 403"

Interdit


Document d'erreur 404 /erreurs/404.html

Attention : lors de la spécification du code HTML directement dans cette directive, les guillemets sont placés uniquement en début de ligne (voir exemple) !
Les chemins de fichiers sont relatifs au répertoire racine d'un hébergeur donné, et non au système de fichiers (correct : /errors/404.html ; incorrect : /var/www/myhost/html/errors/404.html).

Activation de la prise en charge SSI

Si ssi n'est pas activé par défaut (ou si vous souhaitez ajouter un autre type de fichier pour que les directives ssi y soient traitées) et que les paramètres du serveur Web autorisent les directives suivantes, ajoutez ces lignes à .htaccess :

AddType texte/html .shtml .htm .html
AddHandler serveur-parsed.shtml
Options+Inclut

Blocage par référent

En utilisant le module mod_rewrite et le fichier .htaccess, vous pouvez bloquer l'accès à vos ressources si le client provient d'un site spécifique (blocage par referer).

Cela nécessite les directives .htaccess suivantes :

Réécrire le moteur activé

RéécritureCond %(HTTP_REFERER) badsite.com
Réécrire la règle .* – [F]

Ou, si vous devez répertorier plusieurs sites,

Réécrire le moteur activé
# Options + FollowSymlinks # – décommentez si l'erreur 500, une erreur interne du serveur apparaît lors de l'installation de this.htaccess
RéécritureCond %(HTTP_REFERER) badsite.com
RewriteCond %(HTTP_REFERER) anotherbadsite.com
Réécrire la règle .* – [F]

Si vous souhaitez refuser l'accès directement à tous les hôtes, à l'exception de certains, l'ensemble de règles ressemblerait à ceci :

Réécriture du moteur activé
RewriteCond %(HTTP_REFERER) !^http://(www.)?mydomain.ru(/)?
RewriteCond %(HTTP_REFERER) !^http://(.*).mydomain.ru(/) ?
RéécrireRule .*.(gif|jpg|jpeg|png)$ – [F]
Changer la page d'index

Vous pouvez définir/modifier le fichier d'index et la séquence de leur traitement à l'aide de la directive DirectoryIndex
Par exemple:

RépertoireIndex photo.php photo.php5 index.php

Redirections

Pour organiser une redirection en .htaccess, une ligne comme celle-ci suffit :
Redirection /old_directory/old_file.html http://votre_nouveau_site.com/new_directory/new_file.html

Si vous devez rediriger l'intégralité du contenu d'un sous-répertoire :
Redirection /old_directory http://votre_nouveau_site.com/new_directory/

Redirection pour l'ensemble du site :
Réécriture du moteur activé
RewriteRule (.*) http://votre_nouveau_site.ru

Interdire les appels vers .htaccess

Vous pouvez les protéger comme suit, cependant, cela est déjà dans httpd(2).conf par défaut, c'est-à-dire dans la configuration du serveur Web lui-même.


Commande autoriser, refuser
Nier de tous

Ajout de types MIME

Pour ajouter des types MIME, utilisez la directive
Extension de type mime/type AddType
Par exemple,
Application AddType/torrent x-bittorrent

Il est utilisé dans les cas où la configuration par défaut amène le serveur à transférer des documents différemment de ce qui est requis ; par exemple, de nombreux serveurs adoptent le type texte/plain par défaut, et un fichier binaire (par exemple, une archive rar) téléchargé à partir d'un tel serveur peut très bien s'avérer « cassé ».

Interdiction des liens directs vers des ressources

Si vous souhaitez éviter ce que l'on appelle le « hotlinking » - des liens directs vers vos ressources à partir d'autres sites - .htaccess en combinaison avec mod_rewrite vous aidera à nouveau.
Voyons d’abord pourquoi les hotlinking sont mauvais. Par exemple, un certain site héberge une image située sur votre site, simplement en l'indiquant dans la balise . Dans ce cas, tout accès à une telle page entraînera le téléchargement de cette image depuis votre site internet ; Ainsi, votre trafic et la bande passante de votre serveur seront consommés, et les visiteurs du site Web de quelqu'un d'autre verront l'image que vous avez stockée sans le contexte approprié.

Comment lutter contre cette pratique ?
Considérez l'exemple suivant d'un fichier .htaccess :
Réécrire le moteur activé


RewriteRule \.(js|css)$ - [F]

Ce code interdit l'accès aux fichiers .js et .css (scripts javascript et descriptions de feuilles de style en cascade) s'ils ne sont pas produits à partir de votre site.

Un autre exemple:
Réécrire le moteur activé
RéécritureCond %(HTTP_REFERER) !^$
RewriteCond %(HTTP_REFERER) !^http://(www\.)?mydomain.com/.*$
RewriteRule \.(png|gif|jpg|jpeg)$ http://www.mydomain.com/youaretheworst.gif

Lors de l'accès externe aux images stockées sur votre site, le contenu du fichier youaretheworst.gif sera affiché à la place des images elles-mêmes.

Interdiction d'afficher une liste de fichiers

Apache (lorsque les options appropriées sont activées) peut afficher une liste de fichiers dans un répertoire s'il ne contient aucun des fichiers répertoriés dans DirectoryIndex. Souvent, cette option est activée par défaut, ce qui peut ne pas être acceptable.
Doubler
Options -Index
désactivera ce mode.

Cependant, parfois, au contraire, vous devrez peut-être autoriser l'affichage d'une liste de fichiers, tout en en excluant certains d'entre eux. IndexIgnore est utilisé pour cela.
Par exemple,
IndexIgnorer *.php* *.pl *.html *.shtml
permet l'affichage d'une liste de tous les fichiers, à l'exception des scripts PHP et Perl, ainsi que des documents HTML.

et plus loin...

Nous modifions la page qui s'affichera lors de l'accès au répertoire.

Écrivons dans le fichier .htaccess :

Code
DirectoryIndex index.shtml

** Lors de l'accès au répertoire dans lequel se trouve .htaccess, le fichier index.shtml sera chargé

Refuser l'accès à l'aide de .htaccess

Si nous le souhaitons, nous pouvons bannir tous les fichiers :

Code
nier de tous

*** personne ne verra rien.

Autoriser l'accès des visiteurs uniquement à partir d'une adresse IP spécifique :

Code
Commande Autoriser, Refuser
nier de tous
autoriser à partir de 192.168.8.1

*** Tout le monde, à l'exception du visiteur avec l'IP 192.168.8.1, se voit refuser l'accès.

D'ailleurs, au lieu d'une adresse IP en .htaccess, vous pouvez utiliser un nom de domaine. Par exemple. Nous refuserons l'accès à tous les visiteurs, à l'exception de ceux provenant de www.talkonline.ru :

Code
Commande refusée, Autoriser
Nier de tous
Autoriser depuis .talkonline.ru

Refuser l'accès à une adresse IP spécifique :

Code
Commande Autoriser, Refuser
Autoriser tous
refuser de 192.168.8.1

*** Pour un visiteur avec IP 192.168.8.1, l'accès au site est interdit.
**** Ne me demandez pas où se trouve toute la liste des adresses IP chinoises

De même, comme dans l'exemple ci-dessus, vous pouvez utiliser un nom de domaine à la place (ou avec) l'IP, c'est-à-dire refuser l'accès aux visiteurs provenant d'un site spécifique :

Code
Commande Autoriser, Refuser
Autoriser tous
refuser de .thehun.net
refuser de 192.168.8.1

*** Pour le visiteur avec IP 192.168.8.1 et tous ceux venus de thehun.net, l'accès au site est interdit.

Un encodage spécifique pour tous les fichiers téléchargés sur l'hébergeur :

Code
CharsetSourceEnc windows-iso-8859-1

*** tous les fichiers seront codés Windows-iso-8859-1

Vous pouvez définir un encodage spécifique uniquement pour des fichiers spécifiques téléchargés sur l'hôte :

Code
AddType "application/x-httpd-php3; charset=windows-iso-8859-1" .html
AddType "application/x-httpd-php3; charset=windows-1251" .htm

*** Nous installons l'encodage windows-iso-8859-1 sur les fichiers .html et windows-1251 sur les fichiers .htm

L'encodage de tous les fichiers, dans lequel le navigateur du visiteur les recevra par défaut :

Code
AddDefaultCharset windows-iso-8859-1

*** Toutes les pages que le serveur envoie au client seront codées Windows-iso-8859-1

Redirection des visiteurs vers une autre URL (redirection)
Dans .htaccess nous écrivons :

Code
Redirection / http://talkonline.ru

*** tous les visiteurs seront redirigés vers www.talkonline.ru

Rediriger les visiteurs lors de la demande de certaines pages :
Nous nous protégeons de toutes sortes de virus de réseau et de scanners.
Ajouter au .htaccess :

Code
redirection/scripts http://www.microsoft.com
redirection /_vti_bin http://www.microsoft.com
redirection /MSADC http://www.microsoft.com
redirection /_mem_bin http://www.microsoft.com
rediriger /msadc http://www.microsoft.com
RedirectMatch (.*)\cmd.exe$ http://www.microsoft.com$1

*** Toute requête avec /_vti_bin ou /scripts sera automatiquement redirigée vers le site Microsoft

Rediriger les visiteurs en fonction du référent (page référent) :

Code
RéécritureCond %(HTTP_REFERER) http://www.yandex.ru
RewriteRule ^/yandex.html$ /google.html [L]

*** Dans ce cas, tout le monde de Yandex.ru recevra le fichier google.html au lieu du fichier Yandex.html

Comment faire une redirection 301 pour Joomla :

1. Sur le serveur, nous trouvons le fichier .htaccess, il se trouve généralement dans le répertoire racine.

2. Faites une copie de sauvegarde de .htaccess !!!

3. Recherchez les lignes suivantes :

########## Commencer - Joomla! Section principale du SEF
#
Information
#
#########Fin - Joomla! Section principale du SEF

4. Il y aura des informations entre eux, et dans la dernière ligne il y aura un attribut « L » entre crochets, supprimez-le.

5. Si vous souhaitez que le nom de votre site soit écrit avec www dans la barre d'adresse, après « information » ajoutez ce qui suit

Réécriture du moteur activé
RéécrireBase /
RéécritureCond %(HTTP_HOST) ^site.com
RéécrireRule ^(.*) http://www.site.com/$1

Si vous souhaitez que le nom de votre site soit écrit sans www dans la barre d'adresse, ajoutez-le après « information »

Réécriture du moteur activé
RéécrireBase /
RéécritureCond %(HTTP_HOST) ^www.site.com
RéécrireRule ^(.*) http://site.com/$1

6. On vérifie, vérifie également si les pages internes s'ouvrent, si tout va bien, alors voir le point 7, sinon, télécharge une copie de sauvegarde du fichier .htaccess et revient au point 2.

7. Nous écrivons un commentaire, et si vous mettez un lien vers cet article sur votre site Web, mon cœur sera rempli de joie et la grâce des dieux de Yandex et de Google descendra sur votre ressource

Basé sur des documents du site http://www.htaccess.net.ru, http://www.maxua.com.ua/, www.rabotafree.com



Avoir des questions?

Signaler une faute de frappe

Texte qui sera envoyé à nos rédacteurs :