WordPress : configurer le fichier .htaccess

Le fichier .htaccess est un fichier de configuration utilisé par un serveur Web Apache qui fournit des instructions pour les différents répertoires d’un site Web. htaccess est l’abréviation de « HTTP access » en anglais ou « accès HTTP » en français, qui est le protocole utilisé pour la transmission des pages Web. Ce type de fichier permet de gérer des redirections, des restrictions d’accès, d’afficher des pages d’erreurs personnalisées, mais aussi de restreindre l’accès à certaines de vos pages web à l’aide d’identifiants.

wordpress-htaccess

La mise en place de ces fichiers se révèle donc très utile dans la gestion d’un site ou d’un blog. Toutefois, avant de vous lancer dans l’écriture de votre fichier .htaccess, n’oubliez pas que leur création peut se révéler délicate, voir même périlleuse. La syntaxe des règles doit être respectée à la lettre près. La moindre faute se traduira le plus souvent par une erreur 500.

Intérêt des fichiers htaccess

Les principales raisons d’utilisation des fichiers .htaccess sont :

Quelques principes de bases

Configuration du fichier .htaccess

Étape 1, créer un fichier .htaccess vierge

Cela peut être fait à l’aide d’un simple éditeur de texte, au format ASCII. Ouvrez-le et enregistrez-le sous le nom “htaccess.txt”. Vous pourrez ensuite le renommer « .htaccess ».

Étape 2. Ajouter du contenu à htaccess.txt

Vous pouvez maintenant éditer le fichier et sélectionner ci-dessous les sections que vous souhaitez utiliser en les copiant dans votre propre fichier. htaccess. Veillez à supprimer le # au début de la ligne.

# Pour activer la base Rewriting du serveur (nécessaire uniquement si celui-ci n’est pas configurés avec mod_rewrite activé par défaut)

RewriteEngine on

# Pour désactiver la signature du serveur (ainsi on ne pourra plus l’identifier)

ServerSignature Off

# Pour protéger le fichier .htaccess qui contient des informations sensibles

<files .htaccess>
order allow,deny
deny from all
</files>

# Pour protéger le fichier wpconfig.php

<files wp-config.php>
order allow,deny
deny from all
</files>

# Pour protéger un repertoire ne possédant pas de fichier index. Note : Habituellement, si votre site ne dispose pas d’une page d’index par défaut tous les fichiers de ce répertoire sont accessibles aux visiteurs. Pour éviter cela utilisez le code suivant

Options All -Indexes

# Une autre règle, pour empêcher le serveur de lister le contenu de répertoires

IndexIgnore *

# Pour limiter la taille maximale autorisée pour le téléchargement de fichiers (taille exprimée en octets). Note : ce code est utile uniquement si vous permettez aux utilisateurs d’uploader des fichiers sur votre site.

LimitRequestBody 10240000

# Pour bloquer une adresse IP

deny from 000.000.000.000

# Pour autoriser une adresse IP

allow from 000.000.000.000

# Pour personnalisation des messages d’erreurs

ErrorDocument 404 /notfound.php
ErrorDocument 403 /forbidden.php
ErrorDocument 500 /error.php

# Pour réaliser une redirection permanente 301

Redirect 301 /old.php http://www.yourdomain.com/new.php

# Pour bloquer un site référant

RewriteEngine on
RewriteCond %{HTTP_REFERER} digg\.com [NC]
RewriteRule .*[F]

# Pour bloquer un faux referrer souvent utilisé

RewriteCond %{HTTP_USER_AGENT} ^[^?]*iaea\.org [NC,OR]

# Pour bloquer les navigateurs se dissimulants avec des lettres et chiffres aléatoires

RewriteCond %{HTTP_USER_AGENT} [0-9A-Za-z]{15,} [OR]
RewriteCond %{HTTP_USER_AGENT} ^[0-9A-Za-z]+$ [OR]

# Protection contre le hotlinking

Pour rappel, le hotlinking consiste à appeller des images provenant d’un autre serveur que le sien. Le code suivant affichera l’image « hotlink.jpg » à la place de l’image désirée, sauf si le domaine appellant est votresite.com.

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain.com/.*$ [NC]
#RewriteRule \.(gif|jpg)$ – [F]
RewriteRule \.(gif|jpg)$ http://www.yourdomain.com/hotlink.jpg [R,L]

# Pour améliorer les performances de WordPress chez les hébergements mutualisés

SetEnv REGISTER_GLOBALS 0 /* désactive register globals */
SetEnv ZEND_OPTIMIZER 1 /* active PHP Zend Optimiser : le code PHP est optimisé et les traitements récurrents sont mis en cache */
SetEnv MAGIC_QUOTES 0 /* directives PHP magic quotes */
SetEnv PHP_VER 5 /* pour passer à PHP5 qui offre une meilleure comptabilité avec les extensions */

# Pour activer la compression php – À utiliser avec prudence !

<ifmodule mod_php4.c>
php_value zlib.output_compression 16386
</ifmodule>

# Pour définir l’url canonique

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

# Pour déguiser les extentions de fichiers et les présenter comme des fichiers .php (ou celle de votre choix).

ForceType application/x-httpd-php

# Pour renforcer la sécurité et dissimuler les langages de script, remplacez l’extensions d’origine par celle de votre choix. Par exemple, pour changer le .php par l’extension .foo ajouter la ligne suivante à votre fichier htaccess et renommez tous les fichiers en conséquence

# change toutes les extentions .foo par .php

AddType application/x-httpd-php .foo

# change toutes les extentions .foo par .cgi

AddType application/x-httpd-cgi .foo

# Pour se protéger contre des commentaires de Spam

RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.*yourdomain.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]

# Pour améliorer la vitesse de transfert de site, en permettant la mise en cache des fichiers :

a) Pour mettre en cache les images et fichiers flash pour un mois

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

b) Pour mettre en cache les fichiers javascript, texte,css et pdf pour une semaine

<FilesMatch ".(js|css|pdf|txt)$">
Header set Cache-Control "max-age=604800"
</FilesMatch>

c) Pour mettre en cache les fichiers html et htm pour un jour

<FilesMatch ".(html|htm)$">
Header set Cache-Control "max-age=43200"
</FilesMatch>

d) Pour mettre un cache minimum pendant la durée de construction d’un site

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

e) Pour désactiver le cache pour les scripts et fichiers dynamiques

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

f) Méthode alternative pour mettre en cache les fichiersExpiresActive On

ExpiresActive On
ExpiresDefault A604800 # 1 week
ExpiresByType image/x-icon A2419200 # 1 month
ExpiresByType application/x-javascript A2419200 # 1 month
ExpiresByType text/css A2419200 # 1 month
ExpiresByType text/html A300 # 5 minutes

g) désactive le cache de scripts et fichiers

<FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$">
ExpiresActive Off
</FilesMatch>

* Convertir des intervalles de temps en secondes :
300 = 5 minutes
2700 = 45 minutes
3600 = 1 heure
54000 = 15 heures
86400 = 1 jour
518400 = 6 jours
604800 = 1 semaine
1814400 = 3 semaines
2419200 = 1 mois
26611200 = 11 mois
29030400 = 1 an = n’expire jamais

# Pour limiter les requêtes par methode GET et PUT

Options -ExecCGI -Indexes -All
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK|OPTIONS|HEAD) RewriteRule .* - [F]

# Pour définir la langue le jeu de caractères par défaut

AddDefaultCharset UTF-8

# Pour régler le fuseau horaire du serveur (mettre le server timezone pour Paris ou Washington)

SetEnv TZ Europe/Paris ou SetEnv TZ America/Washington

Étape 3. Transférer le fichier .htaccess sur le serveur

Après avoir modifié votre fichier .htaccess, transférez-le sur votre server (en mode d’ASCII), fixez-lui un CHMOD de 0444 pour être sûr que WordPress ne le modifie automatiquement lors de l’installation d’un plugin ou lors d’une mise à jour des permaliens.

Source : Configurer Apache – Guide .htaccess – Les directives.

——

maccimum-sign-blogPour tous renseignements complémentaires, contactez-nous : www.maccimum.fr (communication globale, tous supports, tous médias).

À lire également :

WordPress
  • Share/Bookmark

Si vous avez apprécié cet article, prenez le temps de laisser un commentaire ou souscrire au flux afin de recevoir les futurs articles directement dans votre lecteur de flux.

Commentaires

One Response de “WordPress : configurer le fichier .htaccess”

Laissez un commentaire

(requis)

(requis)


Subscribe without commenting