Le mod_rewrite est un module Apache qui utilise un moteur de réécriture basé sur des règles. Il est utilisé pour traduire et rediriger l'URL demandée vers une nouvelle URL. Il permet de modifier dynamiquement une URL. Ainsi, le visiteur ne voit jamais l'URL changer dans la barre d'adresse. Avec mod_rewrite, vous pouvez réécrire un nombre illimité de règles. Cela vous permettra de réécrire l'URL en fonction des variables d'environnement, des en-têtes HTTP et des variables de serveur.
Dans cet article, nous montrerons comment utiliser mod_rewrite pour réécrire l'URL d'Apache sur Ubuntu VPS.
Prérequis
- Ubuntu 20.04 VPS (nous utiliserons notre forfait NVMe 2 VPS)
- Accès au compte utilisateur root (ou accès à un compte administrateur avec privilèges root)
Étape 1 :Connectez-vous au serveur et mettez à jour les packages du système d'exploitation du serveur
Tout d'abord, connectez-vous à votre serveur Ubuntu 20.04 via SSH en tant qu'utilisateur root :
ssh root@IP_Address -p Port_number
Vous devez remplacer "IP_Address" et "Port_number" par l'adresse IP et le numéro de port SSH respectifs de votre serveur. En outre, vous devez remplacer "root" par le nom d'utilisateur du compte administrateur si nécessaire.
Avant de commencer l'installation, nous devons nous assurer que tous les packages du système d'exploitation Ubuntu installés sur le serveur sont mis à jour. Vous pouvez le faire en exécutant les commandes suivantes :
apt-get update -y apt-get upgrade -y
Étape 2 :Installer le serveur Web Apache
Avant de commencer, assurez-vous que le package de serveur Web Apache est installé sur votre système. S'il n'est pas installé, vous pouvez l'installer avec la commande suivante :
apt-get install apache2 -y
Une fois le package installé, démarrez le service Apache avec la commande suivante :
systemctl start apache2
Ensuite, ouvrez votre navigateur Web et saisissez l'URL http://your-server-ip pour vérifier le serveur Web Apache. Si tout va bien, vous devriez voir la page de test Apache :
Étape 3 :Activer mod_rewrite
Par défaut, le module mod_rewrite est installé avec le package Apache mais il est désactivé. Vous devrez donc d'abord l'activer.
Vous pouvez l'activer avec la commande suivante :
a2enmod rewrite
Ensuite, redémarrez le service Apache pour appliquer les modifications.
Ensuite, vérifiez le module Apache mod_rewrite avec la commande suivante :
apache2ctl -M | grep rewrite_module
Vous devriez obtenir le résultat suivant :
rewrite_module (shared)
Étape 4 :Activer les fichiers .htaccess
Vous pouvez configurer des règles de réécriture directement dans le fichier de configuration principal d'Apache. Cependant, il est recommandé d'écrire des règles dans le fichier .htaccess à l'intérieur de chaque site Web.
Par défaut, Apache ne permet pas d'utiliser le fichier .htaccess. Vous devrez donc activer le fichier .htaccess dans votre fichier de configuration d'hôte virtuel par défaut.
Pour ce faire, modifiez le fichier de configuration de l'hôte virtuel par défaut d'Apache :
nano /etc/apache2/sites-available/000-default.conf
Ajoutez les lignes suivantes avant la ligne :
<Directory /var/www/html> Options Indexes FollowSymLinks MultiViews AllowOverride All Require all granted </Directory>
Assurez-vous d'enregistrer et de fermer le fichier, puis redémarrez le service Apache pour appliquer les modifications :
systemctl restart apache2
Étape 5 :Configurer les réécritures d'URL
Pour comprendre comment fonctionnent les réécritures d'URL, nous allons créer une page home.html dans le répertoire racine du document Apache. Nous allons ensuite configurer une réécriture d'URL de base qui permettra d'accéder à la page http://your-server-ip/home et de la convertir en chemin de page réel http://your-server-ip/home.html.
Commençons par créer une page home.html :
nano /var/www/html/home.html
Ajoutez le contenu suivant :
<html> <head> <title>Home</title> </head> <body> <h1>Home Page</h1> <h2>This is my home page</h2> </body> </html>
Enregistrez et fermez le fichier lorsque vous avez terminé.
Ensuite, créez un fichier .htaccess dans le répertoire racine du document par défaut du site Web pour tester mod_rewrite.
nano /var/www/html/.htaccess
Commencez par ajouter la ligne suivante pour activer le moteur de réécriture :
RewriteEngine on
Ensuite, ajoutez la règle de réécriture suivante qui redirige les visiteurs vers home.html s'ils demandent la page http://your-server-ip/home.
RewriteRule ^home$ home.html [NC]
Enregistrez et fermez le fichier lorsque vous avez terminé.
Une brève explication de la syntaxe des règles de réécriture est présentée ci-dessous :
- ^ Cela correspondra à tout texte après l'adresse IP du serveur.
- $ Cela indiquera la fin de l'URL.
- accueil Cela correspondra à la chaîne réelle home
- home.html Cela définira le fichier réel auquel le visiteur accède.
- [NC] Cela rendra la règle insensible à la casse.
Vous pouvez maintenant visiter la page d'accueil sur http://your-server-ip/home sur votre navigateur Web. Apache redirigera vers la page home.html comme indiqué ci-dessous :
Bien sûr, vous n'avez rien à faire si vous utilisez l'un de nos services d'hébergement VPS Linux, auquel cas vous pouvez simplement demander à nos administrateurs Linux experts de le configurer pour vous. Ils sont disponibles 24h/24 et 7j/7 et prendront immédiatement en charge votre demande.
PS. Si vous avez aimé cet article, partagez-le avec vos amis sur les réseaux sociaux en utilisant les boutons à gauche ou laissez simplement une réponse ci-dessous. Merci.