FAQ Instructions simples pour travailler avec le service Profitserver
Entrée FAQ Configuration du fichier .htaccess

Configuration du fichier .htaccess


Dans cet article, nous explorerons les principes fondamentaux de l'utilisation du fichier .htaccess, essentiel à l'optimisation du référencement. Ce fichier assure une indexation optimale des pages par les moteurs de recherche. Nous apprendrons à gérer les redirections, à configurer la sécurité et à optimiser les performances. Nous vous donnerons également des conseils pour configurer ce fichier de manière autonome.

Pourquoi .htaccess est nécessaire

Le fichier .htaccess agit comme une sorte de « contrôle à distance » pour les développeurs web sur les serveurs Apache. Il offre des outils pratiques pour ajuster divers paramètres et gérer le comportement d'un site web. Lorsque l'accès direct aux principaux fichiers de configuration du serveur est impossible (comme c'est souvent le cas avec l'hébergement virtuel, par exemple), .htaccess devient un outil utile pour effectuer les modifications nécessaires.

Le fichier .htaccess se trouve souvent à la racine de votre site ou dans les dossiers nécessitant une configuration spécifique. Par exemple, si vous utilisez WordPress, la configuration peut être effectuée via l'extension Yoast SEO, dont nous avons parlé dans l'article. Configuration de robots.txtDans d'autres cas, il suffit d'aller dans le dossier requis et de modifier le fichier .htaccess existant, ou de le créer s'il n'a pas encore été créé.

Configuration du fichier .htaccess

Redirection 301 htaccess

Une redirection 301 dans le fichier .htaccess peut être comparée à une redirection permanente sur un site web. Elle informe les moteurs de recherche et les navigateurs que la page est désormais située à une nouvelle adresse et suggère de mettre à jour les favoris et l'indexation. Une telle redirection est généralement utilisée lorsqu'une page est déplacée ou supprimée afin de préserver son classement dans les résultats de recherche et de rediriger les visiteurs vers le nouvel emplacement.

Pour activer les redirections, vous devez activer la commande correspondante dans le fichier .htaccess :

RewriteEngine on

Après cela, vous pouvez configurer la forme la plus simple de redirection :

<IfModule mod_rewrite.c>
RewriteEngine On
Redirect 301 /old-page.html /new-page.html
</IfModule>

Une redirection similaire utilisant le Redirection permanente la directive ressemble à ceci :

<IfModule mod_rewrite.c>
RewriteEngine On
Redirect permanent /old-page.html http://new-domain.ru/new-page.html
</IfModule>

Voici les méthodes de redirection les plus simples à configurer. Prenons l'exemple d'une configuration utilisant d'autres types de redirections plus avancés, avec mod_rewrite module:

<IfModule mod_rewrite.c>
RewriteEngine On
    
# Redirecting from one page to another
RewriteRule ^old-page.html$ http://www.example.com/new-page.html [R=301,L]

# Redirecting all traffic from one domain to another
RewriteCond %{HTTP_HOST} ^oldsite.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.oldsite.com$
RewriteRule ^(.*)$ http://www.newsite.com/$1 [R=301,L]
    
# Redirecting from www to non-www (or vice versa)
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]

# Redirecting from HTTP to HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]

# Redirecting from one subdomain to another
RewriteCond %{HTTP_HOST} ^subdomain1.example.com$
RewriteRule ^(.*)$ http://subdomain2.example.com/$1 [R=301,L]
</IfModule>

Une redirection 302 .htaccess, indiquant un déplacement temporaire, est beaucoup moins fréquente. Voici un exemple :

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^old-page.html$ /new-page.html [R=302,L]
</IfModule>

Document d'erreur de directive

Ce paramètre vous permet de contrôler ce que l'utilisateur voit lorsque des erreurs HTTP se produisent sur votre site. Au lieu du message d'erreur standard, vous pouvez afficher votre propre page, plus informative pour le visiteur et l'aidant à comprendre ce qui s'est passé. Suivez simplement la syntaxe suivante :

ErrorDocument <error_code> <URL_page>

Par exemple,

ErrorDocument 404 /errors/not_found.html

Cela signifie que lorsqu'un 404 une erreur se produit, la page à /errors/not_found.html sera ouvert. Les URL absolues sont spécifiées de la même manière :

ErrorDocument 500 http://example.com/errors/server_error.html

Cet exemple indique l'affichage de la erreur_serveur.html page à http://example.com/errors/ en cas de 500 Erreur.

Refuser l'accès à un répertoire de sites

Le fichier .htaccess contient la commande Deny from all, qui permet de refuser l'accès à certains dossiers ou fichiers sur votre serveur web. Cela peut être utile si vous souhaitez masquer des informations privées ou des fichiers importants aux visiteurs de votre site afin de garantir la sécurité de vos données.

Pour désactiver la liste (affichage de tous les répertoires disponibles), vous devez ajouter la ligne :

Options -Indexes

Un exemple de blocage de l’accès à un répertoire spécifique ressemble à ceci :

<Directory /path_to_your_directory>
Order Deny,Allow
Deny from all
</Directory>

De même, vous pouvez refuser l’accès à un seul fichier :

<Files "file.php">
Order Deny,Allow
Deny from all
</Files>

Ou pour une plage de fichiers par extension :

<FilesMatch "\.(txt|log|bak)$"> # Select the desired extensions, in the example: txt, log, bak
Order Deny,Allow
Deny from all
</FilesMatch>

Blocage de l'accès par IP

Le blocage de l'accès par adresse IP dans le fichier .htaccess permet de restreindre l'accès à votre site web à des adresses IP spécifiques ou à leurs groupes. Cela peut être utile si vous souhaitez empêcher l'accès à votre site ou à certaines parties de celui-ci à certaines personnes ou à des robots indésirables.

Le blocage d'une seule adresse IP se fait avec la commande :

Order Deny,Allow
Allow from all
Deny from 11.22.33.44

Le blocage de plusieurs adresses IP se fait de la même manière en dupliquant le "Refuser de" ligne avec les adresses requises.

Pour bloquer une plage d’adresses IP :

Order Deny,Allow
Allow from all
Deny from 11.11.11.11/24

Pour autoriser l'accès uniquement à des adresses IP spécifiques, ajoutez le code :

Order Deny,Allow
Deny from all
Allow from 11.22.33.44

Pour un refus d'accès complet, utilisez la directive Deny from all, et pour bloquer les adresses par masque, spécifiez Deny from 11.22.

Où, 11.22 est l'adresse IP masque.

Blocage des visiteurs par l'agent utilisateur

Le blocage des utilisateurs par agent utilisateur dans le fichier .htaccess permet de contrôler l'accès à votre serveur web en fonction des informations relatives au navigateur utilisé par le visiteur. L'agent utilisateur contient des données sur le navigateur utilisé par l'utilisateur pour interagir avec votre serveur. Grâce à ces informations, vous pouvez restreindre l'accès à certains utilisateurs.

La manière la plus courante de bloquer par User-Agent est d'utiliser mod_rewrite:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^Bot1 [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot2 [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot3 [NC]
RewriteRule ^.*$ - [F,L]
</IfModule>

Dans cet exemple:

  1. RewriteCond %{HTTP_USER_AGENT} est utilisé pour vérifier la chaîne User-Agent.
  2. ^Bot1, ^Bot2 et ^Bot3 sont des exemples de chaînes d'agent utilisateur que nous souhaitons bloquer. Les modificateurs NC indiquent que la comparaison doit être insensible à la casse.
  3. RewriteRule ^.*$ - [F,L] s'applique à la requête si l'une des conditions RewriteCond est remplie. Elle envoie une réponse avec le code d'état 403 Interdit (F) et arrête le traitement des règles (L).

Mise en cache dans htaccess

Configurer la mise en cache via le fichier .htaccess accélère le chargement de votre site pour les utilisateurs. Son fonctionnement est le suivant : certains fichiers, tels que les images, les styles CSS et les scripts JavaScript, sont stockés dans le cache du navigateur après le premier chargement. Le navigateur peut alors utiliser ces fichiers depuis le cache, au lieu de les recharger depuis le serveur à chaque visite. Cela réduit le temps de chargement et améliore les performances du site.

Prenons un exemple :

# Enable caching for images for 1 month
<FilesMatch "\.(jpg|jpeg|png|gif|svg)$">
Header set Cache-Control "max-age=2592000, public"
</FilesMatch>

# Enable caching for CSS and JavaScript for 1 week
<FilesMatch "\.(css|js)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>

Pour les ressources fréquemment mises à jour, en revanche, il est nécessaire de désactiver la mise en cache :

# Excluding caching for HTML pages and XML files
<FilesMatch "\.(html|xml)$">
Header set Cache-Control "no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "0"
</FilesMatch>

Optimisation des performances du site

Le mod_deflate et mod_gzip Les modules Apache permettent de compresser les informations envoyées par le serveur aux appareils des utilisateurs. Cela réduit la taille des fichiers, ce qui accélère le chargement des pages. Cependant, il est important de noter que la prise en charge et la configuration de ces modules peuvent varier selon votre serveur.

Exemple d'utilisation du mod_deflate module:

<IfModule mod_deflate.c>
# Compressing text file types
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE application/x-httpd-fastphp
AddOutputFilterByType DEFLATE image/svg+xml
</IfModule>

Exemple pour mod_gzip:

<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$ # Enabling compression for files with extensions .html, .txt, .css, .js, .php, .pl
mod_gzip_item_include mime ^application/x-javascript.* # Enabling compression for MIME types starting with application/x-javascript
mod_gzip_item_include mime ^text/.* # Enabling compression for MIME types starting with text/
mod_gzip_item_exclude mime ^image/.* # Excluding from compression MIME types starting with image/
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* # Excluding already compressed data (responses with the Content-Encoding: gzip header)
</IfModule>

Nous avons abordé les directives les plus fréquemment utilisées. Vous pouvez vous familiariser avec toutes les fonctionnalités du fichier dans la section documentation officielle.

Comment vérifier la fonctionnalité du fichier .htaccess

Pour vérifier si votre fichier .htaccess fonctionne sur le site, vous pouvez effectuer les étapes suivantes :

  1. Modification intentionnelle du fichier .htaccess avec une erreur. En réponse, le serveur devrait afficher une erreur. Cette méthode indique si l'opération du fichier est généralement appliquée sur le serveur.
  2. Vérifiez la fonctionnalité des modifications spécifiques que vous avez apportées. Par exemple, modifiez légèrement l'un des paramètres et évaluez la présence de modifications.
  3. Vérifiez le code d'état de la page si les modifications sont liées à la réponse du serveur. La procédure est décrite précédemment dans l'article. Codes d'erreur HTTP : une liste complète des erreurs de serveur.
  4. Consultez les journaux du serveur. Ils affichent toutes les erreurs liées au fonctionnement du fichier .htaccess.
  5. Effectuer des tests à l’aide de services ou d’outils en ligne.

Il est important de comprendre que pour vérifier la fonctionnalité du fichier .htaccess, il n'est pas nécessaire d'effectuer toutes les étapes simultanément. Il suffit de choisir la méthode la plus adaptée dans la liste et de l'utiliser.

Conclusion

La configuration du fichier .htaccess est une étape importante pour optimiser et protéger votre serveur Apache. Nous avons vu comment ce fichier permet de gérer les redirections, de compresser le contenu et d'assurer la sécurité. Une fois que vous maîtriserez l'utilisation de .htaccess, vous disposerez d'un outil puissant pour améliorer les performances et les fonctionnalités de vos sites web.

❮ Article précédent Configuration du serveur FTP
Article suivant ❯ Comment configurer un serveur Web (Apache-PHP-MySQL/MariaDB) sous Linux

Demandez-nous des informations sur VPS

Nous sommes toujours prêts à répondre à vos questions à toute heure du jour ou de la nuit.