Le fichier .htaccess est un fichier de configuration au niveau du répertoire, pris en charge par le serveur web Apache. Il permet de modifier les paramètres du serveur web (comme l’activation ou la désactivation de fonctionnalités) pour un compte spécifique, sans affecter la configuration globale du serveur.
Ce fichier applique ses paramètres à l’ensemble du répertoire où il se trouve, y compris à tous les fichiers et sous-répertoires de ce répertoire. Toute modification apportée dans le fichier .htaccess est appliquée instantanément, sans qu’il soit nécessaire de redémarrer le serveur.
Pour trouver le fichier .htaccess :
1. Accédez à votre compte Spaceship >> choisissez Hosting Manager dans Launchpad >> Gérer à côté d’un plan d’hébergement >> Fichiers et stockage >> Gérer les fichiers près du nom du site web.
2. Vous serez redirigé vers le dossier racine du domaine.
3. Si vous devez modifier le fichier .htaccess du domaine, localisez le fichier .htaccess dans le dossier racine du domaine, faites un clic droit dessus et choisissez l’option Modifier :

REMARQUE : Assurez-vous que « Afficher les fichiers cachés (dotfiles) » est activé dans le menu Paramètres :

4. S’il n’y a pas de fichier .htaccess dans le gestionnaire de fichiers, vous pouvez en créer un nouveau avec le bouton + Fichier :

5. Vous êtes prêt à ajouter vos propres règles de configuration et à les enregistrer.
Cette méthode vous permet de bloquer des utilisateurs en fonction de leur adresse IP ou de leur domaine. Elle est particulièrement utile pour restreindre l’accès à des visiteurs indésirables ou pour limiter l’accès à certaines sections de votre site web, comme la zone d’administration, au seul propriétaire.
Pour mettre en place des règles de blocage spécifiques, créez un fichier .htaccess avec ce qui suit :
(Pour autoriser l’accès à tous les autres et bloquer les utilisateurs avec une adresse IP X.X.X.X)
<RequireAll>
Require all granted
Require not ip X.X.X.X
</RequireAll>
(Pour bloquer tous les visiteurs sauf les IPs spécifiques X.X.X.X et Y.Y.Y.Y)
<RequireAll>
Require all denied
Require ip X.X.X.X
Require ip Y.Y.Y.Y
</RequireAll>
REMARQUE : N’utilisez pas les directives obsolètes Allow, Deny et Order avec la nouvelle directive Require .
Mod_Rewrite définit la façon dont les pages web et les URL sont présentées aux visiteurs.
Par défaut, Mod_Rewrite associe une URL à un chemin de fichier correspondant. Cependant, il peut également rediriger une URL vers une autre.
Avant de configurer une redirection, il est important de choisir le type de redirection qui correspond le mieux à vos besoins :
Redirection permanente (301) : Cette redirection envoie un code d’état 301, indiquant que la page a été déplacée de façon permanente. Elle est mise en cache dans le navigateur, signalant aux moteurs de recherche et aux agents utilisateurs de mettre à jour l’URL dans leurs bases de données. C’est le type de redirection le plus courant.
Redirection temporaire (302) : Cette redirection envoie un code d’état 302, indiquant que le déplacement est temporaire. Le navigateur ne mettra pas en cache cette redirection et, bien qu’elle redirige les visiteurs et les moteurs de recherche, la page d’origine continuera d’être indexée. Ce type de redirection est recommandé sauf si vous êtes certain que l’URL ne changera pas à l’avenir.
Vous trouverez ci-dessous une liste de certaines des redirections les plus courantes et utiles qui peuvent être configurées via le fichier .htaccess :
Redirection permanente de example1.com vers example2.com
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example1\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example1\.com$
RewriteRule ^(.*)$ "http\:\/\/example2\.com/$1" [R=301,L]
Redirection temporaire de exampledomain1.com vers exampledomain2.com
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example1\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example1\.com$
RewriteRule ^(.*)$ "http\:\/\/example2\.com\/" [R=302,L]
REMARQUE : Vous trouverez ci-dessous des exemples de redirections permanentes. Les redirections temporaires peuvent être définies en remplaçant [R=301,L] par [R=302,L] à la fin du code (si nécessaire).
Redirection de example1.com/subfolder vers example2.com
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example1\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example1\.com$
RewriteRule ^subfolder/$ "http\:\/\/example2\.com\/" [R=301,L]
Redirection de HTTP vers HTTPS pour example.com
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule .* https://example.com%{REQUEST_URI} [R,L]
ou
RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
Redirection du non-WWW vers WWW
pour tout domaine, .htaccess prend effet :
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
pour un domaine spécifié :
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
Redirection du WWW vers le non-WWW
pour tout domaine .htaccess prend effet :
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
pour un domaine spécifié :
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule (.*) http://example.com/$1 [R=301,L]
Rediriger toutes les pages de example.com vers les pages correspondantes de domain.com
RedirectMatch 301 ^/(.*)$ http://domain.com/$1
REMARQUE : Tous les noms de pages doivent correspondre sur les deux domaines, sinon la redirection entraînera un message « Page non trouvée ».
Rediriger une page vers une nouvelle URL
Redirect 301 /old_page.html http://www.domain.com/new_page.html
REMARQUE : Cette technique peut être utile pour rediriger une page supprimée vers une erreur 404, ou pour effectuer des ajustements SEO après la mise à jour des références de contenu.
Ce type de règle définit des restrictions de sécurité pour un répertoire ou un sous-répertoire. Vous pouvez protéger par mot de passe des répertoires afin que tout visiteur tentant d’y accéder soit invité à saisir un nom d’utilisateur et un mot de passe.
Pour mettre en place cette protection :
1. Créez le répertoire que vous souhaitez protéger dans le dossier /home/cpanel_user/.htpasswds/ (par exemple, pour domain.com/test, le chemin est .htpasswds/domain.com/test/).
2. Dans ce répertoire, créez un fichier passwd et ajoutez des identifiants d’accès hachés à l’aide d’un générateur en ligne.
3. Ajoutez les directives suivantes au fichier .htaccess :
AuthType Basic
AuthName "Directory Name"
AuthUserFile "/home/cpanel_user/.htpasswds/public_html/test/passwd"
require valid-user
Cette fonctionnalité vous permet de créer des pages d’erreur personnalisées pour votre site web. C’est une option utile car elle vous permet de présenter aux visiteurs un message d’erreur qui correspond au thème de votre site en cas d’URL cassées. Cela permet d’éviter l’affichage de l’erreur par défaut « 404 File Not Found » et de retourner à la place une page d’erreur personnalisée avec des instructions pour guider les utilisateurs vers le contenu de votre site, évitant ainsi toute confusion.
Pour configurer une page d’erreur personnalisée, ajoutez le texte suivant dans un fichier .htaccess :
ErrorDocument 404 /404.html
Cette ligne indique au serveur web Apache de charger un fichier 404.html situé à la racine du domaine chaque fois qu’une erreur 404 (Fichier non trouvé) se produit.
REMARQUE : Pour créer des pages d’erreur personnalisées pour d’autres erreurs (comme 403 ou 500), il suffit de remplacer 404 par le code d’erreur correspondant et /404.html par le chemin de votre fichier d’erreur personnalisé.
Si vous devez désactiver temporairement certaines des règles existantes, par exemple à des fins de test, vous pouvez facilement les commenter. Pour ce faire, ajoutez simplement un dièse (#) au début de la ligne.
En alternative, vous pouvez désactiver une ligne ou un bloc de lignes en les sélectionnant et en utilisant le raccourci Ctrl + / .