Catégorie:Hébergement mutualisé/htaccess

De Ikoula Wiki
Jump to navigation Jump to search

Le fichier htaccess

Les fichiers .htaccess sont des fichiers de configuration du serveur Apache. Il se présente sous la forme d'un fichier nommé .htaccess ( le . signifie juste un fichier caché sur Linux).

Le htacess a énormément de possibilité que nous verrons un peu plus tard mais vous devez garder en tête que des modifications sur ce fichier ne doivent pas être pris à la légère. La moindre erreur peut vous retourner une erreur 500, nous vous conseillons d'effectuer d'abord des modifications sur un serveur de préproduction pour éviter toute incident.

Pages d’erreurs personnalisées

Il est possible pour vous de mettre en place des pages d'erreurs personnalisées que vous aurez au préalable mis sur sur votre serveur. Nous pouvons donc déployer des pages personnalisées pour éviter d'avoir la page par défaut de votre serveur.

Dans votre fichier .htaccess, vous devez ajouter les lignes:

ErrorDocument 404 /404.html
ErrorDocument 403 /403.html
ErrorDocument 500 /500.html

Activer la compression

Vous pouvez compresser certaines ressources avant qu’elles ne soient transférées du serveur au navigateur pour optimiser l'affichage de votre site ( vitesse d'affichage du site grandement réduit chez vos visiteurs)

<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/shtml
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
</IfModule>


==Bloquer l’exécution de tout script côté serveur


Cette astuce vous permettra par exemple de protéger un dossier d'upload ou tout dossier très sensible. Créez donc un fichier HTACCESS pour chaque dossier sensible. Cette méthode permet d'empêcher d'exécuter un script directement depuis le dossier concerné. Nous allons donc protéger l'exécution directe du fichier par un navigateur.

# Aucun script dans le dossier et ses sous-dossiers, que ce soit PHP, PERL ou autre CGI, ne pourra s’exécuter si ExecCGI est inactif. Et interdit d'afficher la liste des fichiers.
OPTIONS -ExecCGI  -Indexes

Réécriture d’URL

La réécriture d'URL peut être utile dans le cas ou vous souhaitez simplifier et de rendre intelligibles pour les visiteurs ou pour les robot d'indexation qui sont utilisés pour les moteurs de recherche.

RewriteEngine on 
RewriteRule ^(.*)-([0-9]+)\.html ./detail.php?id=$2 [L]
# tout ce qui commence par (n'importe quoi)-(un nombre).html

Cela vous retournera par exemple:

URL de départ: www.monsite.com/louer-un-hébergement-416.html

URL après réécriture: www.monsite.com/detail.php?id=416.

Sécurité, restriction d’accès par IP

Vous pouvez éditer votre fichier .htaccess et effectuer des restrictions d'ip sur votre site ou dans un répertoire qui doit être sécurisé.

# On autorise l'accès à l'ip 82.64.25.54
Allow from 82.64.25.54


# On interdit l'accès à toutes les autres ips
Deny from All

# On interdit l'accès à l'ip 82.64.25.54
Deny from 82.64.25.54

Sécuriser un répertoire avec une authentification

Nous allons voir ici comment sécurisé un répertoire ou votre site via une authentification HTTP.

Nous allons dans notre exemple sécurisé le répertoire "securite" qui sera accessible sur l'URL:

http://www.domaine.com/securite

Nous allons d'abord créer un fichier qui contiendra nos utilisateurs et nos mot de passes, nous appellerons notre fichier "accesslist.txt".

utilisateur1:A2uRxgHjQRPJ
utilisateur2:C5N4fgoA2wtV

Nous allons maintenant créer un fichier .htaccess dans le répertoire "sécurité"

Donc si vous avez stocké votre table d'utilisateurs dans le répertoire /www/securite/ sous le nom 'accesslist.txt', vous devrez modifier la directive AuthUserFile en conséquence :

AuthUserFile site/www/securite/accesslist.txt

Par la suite, vous devez autoriser les utilisateurs qui vont pouvoir se connecter sur ce répertoire pour accéder au page ou lien de téléchargement.

require user utilisateur1 utilisateur2

Rediriger vers une page de maintenance

Remplacer la page dénommée maintenance.html par la page que sur laquelle vous souhaitez rediriger le visiteur avec l’adresse ip voulue. Notez la redirection 302 pour éviter l’indexation de cette page temporaire.

RewriteEngine on
RewriteCond %{REQUEST_URI} !/maintenance.html$
RewriteCond %{REMOTE_ADDR} !^123.123.123.123
RewriteRule $ /maintenance.html [R=302,L]

Cette catégorie ne contient actuellement aucune page ni fichier multimédia.