Hostwinds Tutoriels
Résultats de recherche pour:
Table des matières
Le fichier .htaccess est un fichier de configuration utilisé principalement par les serveurs Web Apache pour contrôler divers aspects du comportement du site Web sur une base par direction.Il vous permet de remplacer les paramètres à l'échelle du serveur et d'appliquer des configurations spécifiques aux répertoires individuels sans modifier directement le fichier de configuration du serveur principal.
Le fichier .htaccess est un outil remarquablement puissant pour gérer efficacement diverses tâches de site Web backend.L'une des tâches les plus courantes est la mise en œuvre des redirections, où Vous pouvez exécuter des redirections au niveau des URL individuelles, sur des domaines entiers, et même au niveau du protocole HTTP.
Dans ce tutoriel, nous allons passer en revue la myriade d'options .htaccess offre une redirection, vous guidant à travers les différentes implémentations afin que vous puissiez rediriger efficacement vos URL en toute confiance.
L'activation du fichier .htaccess indique aux serveurs Web Apache de reconnaître et d'accepter les directives écrites à l'intérieur, ce qui vous configurera pour remplacer les configurations de serveur par défaut au niveau du répertoire.
Si tu as un Hébergement partagé Compte, votre fournisseur de services d'hébergement doit déjà le faire activer, donc tout ce que vous avez à faire est de créer un fichier.
En utilisant votre éditeur de texte préféré (nous utiliserons nano Pour cet exemple), ouvrez le fichier de configuration de votre site Web avec la commande suivante:
Pour les systèmes à base de chapeau rouge (Centos, Fedora, Rhel):
sudo nano /etc/httpd/conf/httpd.conf
Pour les systèmes basés à Debian (Debian, Ubuntu, Linux Mint):
sudo nano /etc/apache2/sites-available/domain_name.conf
Le bloc de fichiers VirtualHost ressemblera à ceci:
<VirtualHost *:80>
ServerAdmin webmaster@example.com
ServerName domain_name
ServerAlias www.domain_name
DocumentRoot /var/www/domain_name/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Remarque: Selon la façon dont vos fichiers de site Web sont organisés, le 'Documentroot' peut différer.Il y a deux configurations communes:
/var/www/domain_name/
├── public_html/
│ ├── index.html
│ ├── about.html
│ └── .htaccess
└── logs/
/var/www/domain_name/
├── index.html
├── about.html
└── .htaccess
Bien que les deux soient valides, il est important de savoir quels fichiers de site vous pouvez ou non vouloir être affectés par le fichier .htaccess.
Dans le VirtualHost Bloc Ajouter le bloc de contenu du répertoire suivant:
<VirtualHost *:80>
<Directory /var/www/domain_name/public_html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Cette directive, en particulier 'Autoroverride all«C'est ce qui vous permet d'appliquer les directives .htaccess sur tous les fichiers de site Web dans le répertoire donné.
Après avoir ajouté le bloc du répertoire, enregistrez et fermez le fichier.Dans Nano, cela peut être fait en appuyant Ctrl + x, puis Oui et pressant ENTRER.
Pour l'activation complète du fichier .htaccess, vous devrez redémarrer Apache:
Pour les systèmes à base de chapeau rouge (Centos, Fedora, Rhel):
sudo systemct1 restart httpd
Pour les systèmes basés à Debian (Debian, Ubuntu, Linux Mint):
sudo systemct1 restart apache2
C'est ça!Apache vous permettra désormais d'utiliser des fichiers .htaccess dans le répertoire donné.
Avec la prise en charge de .htaccess activée, nous pouvons désormais créer le fichier .htaccess.
Pour créer le fichier .htaccess, vous devez aller au répertoire racine où vous avez activé le fichier .htaccess.En utilisant votre éditeur de texte préféré (encore une fois, nous utiliserons Nano) saisir la commande suivante, en remplaçant 'nom de domaine«Avec votre nom de domaine.
Remarque: Retirer 'public_html«Si vous n'avez pas activé le fichier .htaccess dans ce sous-répertoire.
sudo nano /var/www/html/domain_name/public_html/.htaccess
Vous avez maintenant créé un fichier .htaccess et pouvez commencer à présenter les directives de redirection.
le 'Réorienter«La directive est l'option la plus simple pour des redirections de 1 à 1 simples.Cette directive peut être utilisée pour rediriger les URL sur le même domaine ou vers un domaine différent.Les directives suivantes fonctionneront pour tous les codes d'état 3XX (301, 302, 307 et 308)
Redirect 301 "/original_url_path" "/new_url_path"
Redirect 301 "/orignal_url_path" "https://new_domain.com/new_url_path"
Le 'Réécriture«La directive vous permet d'ajouter des règles supplémentaires aux redirections, telles que la correspondance de motifs, grâce à l'utilisation d'expressions et de conditions régulières.
Afin d'utiliser le «réécriture», nous devons nous assurer que le module «mod_rewrite» est activé.
httpd -M | grep rewrite
apache2ctl -M | grep rewrite
Si vous voyez la sortie suivante, le module 'mod_rewrite' est activé
rewrite_module (shared)
Étape 1: Ouvrez le fichier de configuration Apache (généralement 'httpd.conf' ou 'apache2.conf')
sudo nano /etc/httpd/conf/httpd.conf
Étape 2: Assurez-vous que la ligne suivante n'est pas commentée (non # au début).Si c'est le cas, supprimez simplement '#'
LoadModule rewrite_module modules/mod_rewrite.so
Étape 3: Redémarrez Apache pour appliquer les modifications
sudo systemctl restart httpd
Étape 1: Activer le module 'mod_rewrite'
sudo a2enmod rewrite
Étape 2: Redémarrez Apache pour appliquer les modifications
sudo systemctl restart apache2
Si vous avez un modèle commun dans vos anciennes URL, comme le même sous-répertoire (ex. / Blog), vous pouvez utiliser des expressions régulières pour les correspondre et les rediriger:
RewriteEngine On
RewriteRule ^old-section/(.*)$ http://www.example.com/new-section/$1 [R=301,L]
Dans cet exemple, toute URL qui commence par 'ancienne section /' sera redirigé vers 'Nouvelle-section /' avec le même suffixe.
La directive suivante redirigera tout le trafic de 'old-domain.com' à 'new-domain.com, «Préserver le chemin URI.
RewriteEngine On
RewriteCond %{HTTP_HOST} ^old-domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.new-domain.com/$1 [R=301,L]
Lorsque vous «force HTTPS», cela signifie que vous redirigez toutes les demandes HTTP entrantes de votre site vers la version HTTPS sécurisée.
Il existe quelques façons de forcer HTTPS en utilisant la directive «Rewriterule»:
Lorsque vous forcez HTTP sous-domaine.
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Cette méthode de HTTPS forcée est idéale pour les serveurs hébergeant un seul domaine.
Lorsque vous forcez HTTPS sur un domaine spécifique, vous dites au serveur de rediriger les demandes HTTP à HTTPS uniquement pour ce domaine (ou sous-domaine) particulier.
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?specific-domain\.com$ [NC]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Forcer HTTPS avec cette méthode est particulièrement utile lors de l'hébergement de plusieurs domaines sur un seul serveur et vous n'avez qu'à sécuriser un numéro de sélection.
Vous pouvez également utiliser le fichier .htaccess en conjonction avec la directive «Rewriterule» vers rediriger le préfixe «www».
Pour ajouter le préfixe «www»:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]
Pour supprimer le préfixe «www»:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]
Écrit par Hostwinds Team / juin 3, 2024