Conseils et astuces pour votre fichier .htaccess

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?




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.