Blog inspirant depuis 2008
  • Pin It

Conseils et astuces pour votre fichier .htaccess

htacces1

Le fichier .htaccess de votre site web est très important puisqu’il sert à contrôler et à modifier certaines actions précises dans votre site Internet.

Il permet d’effectuer plusieurs modifications concernant le SEO (Search Engine Optimization), la navigation, l’optimisation du temps de chargement et la sécurité de votre site web.

Vous trouverez dans l’article qui suit quelques utilisations, trucs, astuces et conseils très intéressants et utiles pour votre fichier .htaccess.

Récrire votre adresse URL sans les WWW

Une pratique SEO consiste à s’assurer qu’il n’y ait qu’une seule adresse pointant vers votre site web afin d’éviter les contenus dupliqués.

Forcer le retrait des WWW au début de votre adresse URL

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.marevueweb.com [NC]
RewriteRule ^(.*)$ http://marevueweb.com/$1 [L,R=301]

Forcer l’ajout des WWW au début de votre adresse URL

RewriteEngine On
RewriteCond %{HTTP_HOST} ^marevueweb\.com$ [NC]
RewriteRule ^(.*)$ http://www.marevueweb.com/$1 [R=301,L]

Définir votre fuseau horaire « timezone »

Définir votre fuseau horaire à votre serveur peut être très utile si vous utilisez des fonctions PHP concernant la date et le temps. Par exemple un compte à rebours. Voici comment procéder pour définir votre fuseau horaire.

SetEnv TZ America/Montreal

Pour le SEO, créer des redirections 301 permanentes

Les moteurs de recherche ont désormais la capacité de détecter vos redirections 301 et d’ajuster leurs bases de données en conséquence. Voici comment procéder :

Redirect 301 /accueil http://www.marevueweb.com/

Créer une page d’erreur personnalisée

ErrorDocument 401 /error/401.php
ErrorDocument 403 /error/403.php
ErrorDocument 404 /error/404.php
ErrorDocument 500 /error/500.php

La même chose peut être utilisée pour les erreurs 401, 403, 500, etc.

Mettre en mémoire cache certains types de fichiers

Insérer certains types de fichiers dans votre mémoire cache est une excellente méthode afin d’améliorer le temps de chargement de votre site web.

<FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$">
Header set Cache-Control "max-age=2592000"
</FilesMatch>

Le contraire peut également être effectué :

<FilesMatch ".(pl|php|cgi|spl|scgi|fcgi)$">
Header unset Cache-Control
</FilesMatch>

Protection contre le vol de bande passante

Il se peut que certaines personnes utilisent vos images directement via votre site web. Afin de prévenir ce vole de bande passante, vous pouvez utiliser ce code dans votre fichier .htaccess.

RewriteBase /
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?marevueweb.com/.*$ [NC]
RewriteRule .(gif|jpg|swf|flv|png)$ /feed/ [R=302,L]

Désactiver ou activer la navigation à travers vos répertoires

# désactive la navigation à travers vos répertoires
Options All -Indexes

# active la navigation à travers vos répertoires
Options All +Indexes

Modification votre page Index

Vous pouvez modifier la page d’accueil (index.html ou index.php par défaut) de votre site web pour une autre page.

DirectoryIndex produits.html

Ajout de différentes mesures de sécurité

Si vous désirez une meilleure protection contre certaines attaques populaires sur le web, voici quelques lignes de code qui pourront vous être utiles.

RewriteEngine On

# proc/self/environ
RewriteCond %{QUERY_STRING} proc/self/environ [OR]

# bloque un script essayant de définir une valeur mosConfig à travers votre URL
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]

# bloque un script essayant d'envoyer une requête base64_encode dans l'adresse URL
RewriteCond %{QUERY_STRING} base64_encode.*(.*) [OR]

# bloque un script essayant d'envoyer une balise <script> dans votre URL
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]

# bloque un script essayant de définir des variables globales PHP dans l'adresse URL
RewriteCond %{QUERY_STRING} GLOBALS(=|[|\%[0-9A-Z]{0,2}) [OR]

# bloque un script essayant de modifier une variable _REQUEST à travers l'URL
RewriteCond %{QUERY_STRING} _REQUEST(=|[|\%[0-9A-Z]{0,2})

Avez-vous d’autres trucs à partager avec nous concernant le fichiers .htaccess?

9 commentaires

  • Djolhan | 2010/11/24

    Le passage sur les mesures de sécurité me plait bien, merci 🙂

  • Jfrz | 2010/11/28

    Bonjour à tous,

    Je viens vers vous car j’ai fais une fausse manipulation avec l’utilisation d’un fichier HTAccess et je ne trouve pas comment résoudre le problème !

    Voilà, j’ai un site sur lequel j’ai mis le fichier Htaccess suivant :

    RewriteEngine On
    RewriteBase /
    RewriteCond %{HTTP_HOST} ^www.site.com [NC]
    RewriteRule ^(.*)$ http://site.com/$1 [L,R=301]

    Sauf que l’hébergement de mon site est en multidomaine sur un autre site internet que je possède.

    Et depuis la manipulation je n’arrive plus à accéder aux autres pages du site, j’ai le message d’erreur suivant :

    Not Found

    The requested URL /experiences/ was not found on this server.

    C’est la première fois que j’utilisais un fichier HTAccess et je ne sais pas comment résoudre le problème.
    J’ai supprimé le fichier Htacess mais cela ne change rien.

    Est-ce possible que le site garde en mémoire la modification ?
    Faut-il que je fasse une autre manipulation pour remettre le site ?

    Dans l’attente de vos réponse,

    Merci d »avance.

  • Louis_Dea | 2010/11/28

    Salut jf,

    Je te conseil de télécharger ton fichier .htacces de ton serveur, de supprimer tout le code qu’il y a dedans et de le remplacer sur ton serveur.

    J’attends de tes nouvelles à savoir si ça a porté fruits.

  • Jfrz | 2010/11/28

    Merci Louis pour ta réponse rapide.

    Enfaite quand j’ai vu que ça fonctionnait plus. J’ai créé un fichier vide .htaccess et je les copier à la place de l’autre.
    Et j’ai toujours le même problème qui persiste.

    Comment je peux faire ?

  • Jfrz | 2010/11/28

    J’ai réussi à corriger le problème !!! Oufff 🙂

    Enfaite j’utilisais WordPress pour mon site, et je pouvais encore accéder à l’administrateur. J’ai donc remis les permaliens par défaut. Et ça m’a réinitialisé un nouveau htaccess par défault !

    J’ai ensuite remis mes anciens paramètres et impeccable !

    Merci de ton aide,

    Jérémy.

  • Mrhassansadek | 2011/02/21

    j’ai trouvé le début de cette article très important … i’ll be back again 🙂

    Merci beaucoup.

  • calendrier | 2013/06/06

    Super !
    Merci pour ces précieux conseils.

    Une autre instruction utile est celle d’activer le PHP version 5, avec la ligne suivante:

    SetEnv PHP_VER 5

    Cet environnement n’est pas activé par défaut, par exemple, chez Free !

  • Mahab | 2016/07/24

    Bonjour,
    un pb avec Firefox pour mon site en mode sécurisé : le https://www.monsite.fr est bloqué par Firefox et mon hébergeur me dit qu’il y a une « restriction au niveau des certificats wildcard et qu’ils ne peuvent rien faire à ce sujet » (je ne comprends pas tout alors je cite).
    En utilisant votre astuce pour basculer le http://www.monsite.fr sur monsite.fr, cela fonctionne quand la barre d’adresse contient uniquement http://www.monsite.fr, cela ne marche pas quand la barre d’adresse contient http://www.monsite.fr ou https://www.monsite.fr
    J’ai essayé en rajoutant une condition RewriteCond %{HTTPS}
    Cela marche quand la condition est off (http) mais cela ne marche toujours pas quand la condition est on (https)
    Une idée ?

  • Mahab | 2016/07/24

    nb : en fait je viens de vérifier, cela ne marche pas pour Firefox mais également pour IE 11, Opera 38, Safari et google chrome !
    Il semblerait donc que le certificat est systématiquement contrôlé AVANT l’exécution du HTACCESS donc la redirection n’est jamais prise en compte !

Laisser un commentaire