GNU/Linux >> Tutoriels Linux >  >> Linux

Un guide du débutant pour créer des redirections dans un fichier .htaccess

Avez-vous déjà ressenti le besoin de modifier la configuration de votre site Web fonctionnant sur un serveur Web Apache sans avoir un accès root aux fichiers de configuration du serveur (httpd.conf ) ? C'est ce que le .htaccess le fichier est pour.

Le .htaccess Le fichier fournit un moyen d'apporter des modifications de configuration à votre site Web sur une base par répertoire. Le fichier est créé dans un répertoire spécifique contenant une ou plusieurs directives de configuration appliquées à ce répertoire et à ses sous-répertoires. En hébergement mutualisé, vous devrez utiliser un .htaccess fichier pour apporter des modifications à la configuration de votre serveur.

[ Vous pourriez également apprécier : 6 compétences d'administrateur système dont les développeurs Web ont besoin ]

Utilisations courantes du fichier .htaccess

Le .htaccess Le fichier a plusieurs cas d'utilisation. Les exemples les plus courants incluent :

  • Redirections pour certaines URL
  • Charger des pages d'erreur personnalisées, par exemple des pages 404
  • Forcer votre site Web à HTTPS au lieu de HTTP
  • Autoriser ou refuser l'accès à votre site Web à des adresses IP spécifiques
  • Protégez par mot de passe certains répertoires de votre serveur

Quand ne pas utiliser .htaccess ?

Le .htaccess est couramment utilisé lorsque vous n'avez pas accès au fichier de configuration du serveur principal httpd.conf ou la configuration de l'hôte virtuel, qui ne se produit que si vous avez acheté un hébergement mutualisé. Vous pouvez réaliser tous les cas d'utilisation mentionnés ci-dessus en modifiant le(s) fichier(s) de configuration du serveur principal (par exemple, httpd.conf ) ou les fichiers de configuration de l'hôte virtuel, vous ne devez donc pas utiliser .htaccess lorsque vous avez accès à ces fichiers. Toute configuration que vous devez mettre dans un .htaccess peut tout aussi bien être ajouté dans un dans les fichiers de configuration de votre serveur principal ou de votre hôte virtuel.

Raisons pour éviter d'utiliser .htaccess

Il y a deux raisons d'éviter l'utilisation de .htaccess des dossiers. Examinons-les de plus près.

Premier  : Performance - Lorsque AllowOverride est configuré pour autoriser l'utilisation de .htaccess fichiers, httpd recherchera .htaccess fichiers dans chaque répertoire à partir du répertoire parent. Cela aura un impact sur les performances, que vous l'utilisiez ou non. Le .htaccess le fichier est chargé chaque fois qu'un document est demandé à partir d'un répertoire.

Pour avoir une vue complète des directives qu'il doit appliquer, httpd recherchera toujours .htaccess fichiers en commençant par le répertoire parent jusqu'à ce qu'il atteigne le sous-répertoire cible. Si un fichier est demandé depuis le répertoire /public_html/test_web/content , httpd doit rechercher les fichiers suivants :

  • /.htaccess
  • /public_html/.htaccess
  • /public_html/test_web/.htaccess
  • /public_html/test_web/content/.htaccess

Ainsi, quatre accès au système de fichiers ont été effectués pour chaque accès à un fichier à partir d'un contenu de sous-répertoire même si le fichier n'est pas présent.

Deuxième :Sécurité - accorder aux utilisateurs l'autorisation d'apporter des modifications dans .htaccess leur donne un contrôle total sur la configuration du serveur de ce site Web ou de cet hôte virtuel particulier. Toute directive dans le .htaccess fichier a le même effet que n'importe quel placé dans le httpd fichier de configuration lui-même, et les modifications apportées à ce fichier sont en direct instantanément sans qu'il soit nécessaire de redémarrer le serveur. Cela peut devenir risqué en termes de sécurité d'un serveur Web et d'un site Web.

Activer le fichier .htaccess

Pour activer le .htaccess fichier, vous devez disposer des privilèges sudo/root sur le serveur.

Ouvrez le httpd fichier de configuration de votre site Web :

/etc/httpd/conf/test.conf

Vous devez ajouter la directive de configuration suivante dans le fichier d'hôte virtuel du serveur pour autoriser le .htaccess fichier dans DocumentRoot annuaire. Si les lignes suivantes ne sont pas ajoutées, le .htaccess le fichier ne fonctionnera pas :

</VirtualHost>
<Directory /var/www/test.com/public_html>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

Dans le cas d'un hébergement partagé, cela est déjà autorisé par les fournisseurs de services d'hébergement. Tout ce que vous avez à faire est de créer un .htaccess fichier dans le public_html répertoire auquel le fournisseur de services vous a donné accès et dans lequel vous téléchargerez les fichiers de votre site Web.

URL de redirection

Si votre objectif est simplement de rediriger une URL vers une autre, le bouton Redirect directive est la meilleure option que vous pouvez utiliser. Chaque fois qu'une demande provient d'un client sur une ancienne URL, il la transfère vers une nouvelle URL à un nouvel emplacement.

Si vous souhaitez effectuer une redirection complète vers un autre domaine, vous pouvez définir ce qui suit :

# Redirect to a different domain
Redirect 301 "/service" "https://newdomain.com/service"

Si vous souhaitez simplement rediriger une ancienne URL vers une nouvelle URL sur le même hébergeur :

# Redirect to a URL on the same domain or host
Redirect 301 "/old_url.html" "/new_url.html"
Load a custom 404 Error page

Pour une meilleure expérience utilisateur, chargez une page d'erreur personnalisée lorsque l'un des liens de votre site Web pointe vers le mauvais emplacement ou que le document a été supprimé.

Pour créer une page 404 personnalisée, créez simplement une page Web qui fonctionnera comme une page 404, puis ajoutez le code suivant à votre .htaccess fichier :

ErrorDocument 404 /error/pagenotfound.html

Vous devez modifier /error/pagenotfound.html à l'emplacement de votre page 404.

Forcer l'utilisation de HTTPS au lieu de HTTP pour votre site Web

Si vous souhaitez forcer votre site Web à utiliser HTTPS, vous devez utiliser le RewriteEngine module dans le .htaccess dossier. Tout d'abord, vous devez activer le RewriteEngine module dans le .htaccess fichier, puis spécifiez les conditions que vous souhaitez vérifier. Si ces conditions sont remplies, vous appliquez des règles à ces conditions.

L'extrait de code suivant réécrit toutes les requêtes vers HTTPS :

# Turn on the rewrite engine
RewriteEngine On

# Force HTTPS and WWW
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [OR,NC]
RewriteCond %{https} off  
RewriteRule ^(.*)$ https://www.test-website.com/$1 [R=301,L]

Passons en revue chaque ligne.

RewriteEngine activé active le RewriteEngine module. Ceci est nécessaire; sinon, les conditions et les règles ne fonctionneront pas.

La première condition vérifie si www est saisi. [OU, NC] signifie aucun cas , c'est-à-dire même si l'URL saisie contient un mélange de lettres majuscules et minuscules.

Ensuite, il vérifie si le protocole HTTPS a déjà été saisi par l'utilisateur. %{https} de réduction signifie que le protocole HTTPS n'a pas été utilisé.

Lorsque le RewriteCond est satisfait, nous utilisons RewriteRule pour rediriger l'URL vers HTTPS. Notez que dans ce cas, toutes les URL seront redirigées vers HTTPS à chaque demande.

[ Un guide gratuit de Red Hat :5 étapes pour automatiser votre entreprise. ] 

Récapitulez

Les propriétaires de sites Web utilisent souvent le .htaccess fichier pour contrôler le comportement de leur site Web. Dans cet article, nous avons couvert les bases du .htaccess fichier et certains cas d'utilisation courants en place sur la plupart des sites Web.


Linux
  1. Bloquer l'accès via un fichier .htaccess

  2. Guide Ansible :Gérer les fichiers à l'aide d'Ansible

  3. Filtrage de tcpdump :Créer de l'ordre à partir du chaos

  4. Création d'un fichier CSR de certificat Web.

  5. Comment déterminer quel processus crée un fichier ? ?

Un guide du débutant pour le dépannage du réseau sous Linux

Guide du débutant pour l'installation de Pop!_OS Linux

Comment utiliser AppImage sur Linux (Guide du débutant)

Créer un fichier téléchargeable dans cPanel

Guide du débutant sur Syslogs sous Linux

Qu'est-ce que le système de fichiers Linux ? Guide facile