Le .htaccess est un fichier de configuration distribué, et c’est la façon dont Apache gère les changements de configuration sur une base par répertoire.
WordPress utilise ce fichier pour manipuler la façon dont Apache sert les fichiers de son répertoire racine, et de ses sous-répertoires. Plus particulièrement, WP modifie ce fichier pour pouvoir gérer de jolis permaliens.
Cette page peut être utilisée pour restaurer un fichier .htaccess corrompu (par ex. un plugin qui se comporte mal).
Basic WP # Basic WP
# BEGIN WordPressRewriteEngine OnRewriteRule .* - RewriteBase /RewriteRule ^index\.php$ - RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . /index.php # END WordPress
Top
Multisite # Multisite
WordPress 3.5 et plus # WordPress 3.5 et plus
Si vous avez activé Multisite sur WordPress 3.5 ou plus, utilisez l’un de ces éléments.
Exemple de sous-dossier
RewriteEngine OnRewriteRule .* - RewriteBase /RewriteRule ^index\.php$ - # add a trailing slash to /wp-adminRewriteRule ^(+/)?wp-admin$ $1wp-admin/ RewriteCond %{REQUEST_FILENAME} -f RewriteCond %{REQUEST_FILENAME} -dRewriteRule ^ - RewriteRule ^(+/)?(wp-(content|admin|includes).*) $2 RewriteRule ^(+/)?(.*\.php)$ $2 RewriteRule . index.php
Exemple de sous-domaine
RewriteEngine OnRewriteRule .* - RewriteBase /RewriteRule ^index\.php$ - # add a trailing slash to /wp-adminRewriteRule ^wp-admin$ wp-admin/ RewriteCond %{REQUEST_FILENAME} -f RewriteCond %{REQUEST_FILENAME} -dRewriteRule ^ - RewriteRule ^(wp-(content|admin|includes).*) $1 RewriteRule ^(.*\.php)$ $1 RewriteRule . index.php
Top
WordPress 3.4 et moins # WordPress 3.4 et moins
Si vous avez initialement installé WordPress avec 3.4 ou plus ancien et activé Multisite alors, vous devez utiliser l’un de ces éléments :
Exemple de sous-dossier
WordPress 3.0 à 3.4.2
# BEGIN WordPressRewriteEngine OnRewriteBase /RewriteRule ^index\.php$ - # uploaded filesRewriteRule ^(+/)?files/(.+) wp-includes/ms-files.php?file=$2 # add a trailing slash to /wp-adminRewriteRule ^(+/)?wp-admin$ $1wp-admin/ RewriteCond %{REQUEST_FILENAME} -f RewriteCond %{REQUEST_FILENAME} -dRewriteRule ^ - RewriteRule ^+/(wp-(content|admin|includes).*) $1 RewriteRule ^+/(.*\.php)$ $1 RewriteRule . index.php # END WordPress
Exemple de sous-domaine
# BEGIN WordPressRewriteEngine OnRewriteBase /RewriteRule ^index\.php$ - # uploaded filesRewriteRule ^files/(.+) wp-includes/ms-files.php?file=$1 RewriteCond %{REQUEST_FILENAME} -f RewriteCond %{REQUEST_FILENAME} -dRewriteRule ^ - RewriteRule . index.php # END WordPress
Top
Exemples généraux # General. Exemples
Top
Options # Options
Toutes les options précédées d’un + s’ajoutent aux options actuellement en vigueur, et toute option précédée d’un – est supprimée des options actuellement en vigueur.
Les valeurs possibles pour la directive Options sont toute combinaison de :
Aucune
Toutes les options sont désactivées.
Toutes
Toutes les options, à l’exception de MultiViews. Il s’agit du paramètre par défaut.
ExecCGI
L’exécution de scripts CGI à l’aide de mod_cgi est autorisée.
SuiviSymLiens
Le serveur suivra les liens symboliques dans ce répertoire.
Includes
Les includes côté serveur fournis par mod_include sont autorisés.
IncludesNOEXEC
Les includes côté serveur sont autorisés, mais les #exec cmd et #exec cgi sont désactivés.
Index
Les mappes d’URL vers un répertoire, et pas de DirectoryIndex, une liste formatée du répertoire.
MultiViews
Le contenu négocié « MultiViews » est autorisé en utilisant mod_negotiation.
SymLinksIfOwnerMatch
Seulement suivre les liens symboliques où la cible est possédée par le même id utilisateur que le lien.
Cela désactivera toutes les options, puis n’activera que FollowSymLinks, qui est nécessaire pour mod_rewrite.
Options NoneOptions FollowSymLinks
Top
DirectoryIndex # DirectoryIndex
DirectoryIndex définit le fichier qu’Apache servira si un répertoire est demandé.
Plusieurs URL peuvent être données, auquel cas le serveur renverra la première qu’il trouvera.
DirectoryIndex index.php index.html /index.php
Top
DefaultLanguage # DefaultLanguage
DefaultLanguage fera en sorte que tous les fichiers qui n’ont pas déjà une balise de langue spécifique associée utiliseront celle-ci.
DefaultLanguage en
Top
Default Charset # Default Charset
Définir le codage des caractères par défaut envoyé dans l’en-tête HTTP. Voir : Définition des informations sur le jeu de caractères dans .htaccess
AddDefaultCharset UTF-8
Set Charset for Specific Files
AddType 'text/html; charset=UTF-8' .html
Set for specific files
AddCharset UTF-8 .html
.
Haut
ServerSignature # ServerSignature
La directive ServerSignature permet la configuration d’une ligne de bas de page de queue sous les documents générés par le serveur-.générés par le serveur. Ajoutez éventuellement une ligne contenant la version du serveur et le nom d’hôte virtuel aux pages générées par le serveur (documents d’erreurs internes, listes de répertoires FTP, sortie mod_status et mod_info, etc, mais pas les documents générés par CGI ou les documents d’erreur personnalisés).
On
ajoute une ligne avec le numéro de version du serveur et ServerName de l’hôte virtuel serveur
Off
supprime la ligne de bas de page
crée une référence « mailto : » vers le ServerAdmin du document référencé
SetEnv SERVER_ADMIN [email protected] Email
Top
Forcer le téléchargement des fichiers #Forcer le téléchargement des fichiers
Les éléments ci-dessous feront en sorte que toutes les demandes de fichiers se terminant par les extensions spécifiées ne seront pas affichées dans le navigateur mais forceront une boîte de dialogue « Enregistrer sous » afin que le client puisse télécharger.
AddType application/octet-stream .avi .mpg .mov .pdf .xls .mp4
Haut
Compression HTTP # HTTP Compression
La directive AddOutputFilter fait correspondre l’extension du nom de fichier aux filtres qui traiteront les réponses du serveur avant qu’elles ne soient envoyées au client. Ceci s’ajoute à tous les filtres définis ailleurs, notamment SetOutputFilter et AddOutputFilterByType. Ce mappage est fusionné sur celui déjà en vigueur, remplaçant tout mappage qui existe déjà pour la même extension.
Voir aussi : https://developers.google.com/speed/docs/insights/EnableCompression
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascriptBrowserMatch ^Mozilla/4 gzip-only-text/htmlBrowserMatch ^Mozilla/4\.0 no-gzipBrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Forcer la compression pour certains fichiers
SetOutputFilter DEFLATE
Haut de page.
Envoyer des en-têtes HTTP personnalisés # Send Custom HTTP Headers
La directive Header vous permet d’envoyer des en-têtes HTTP pour chaque requête, ou seulement des fichiers spécifiques. Vous pouvez visualiser les en-têtes HTTP d’un site à l’aide de Firebug, Chrome Dev Tools, Wireshark ou d’un outil en ligne.
Header set X-Pingback "http://www.askapache.com/xmlrpc.php"Header set Content-Language "en-US"
Top
Unset HTTP Headers # Unset HTTP Headers
Ceci va désactiver les en-têtes HTTP, en utilisant toujours va essayer extra fort de les supprimer.
Header unset PragmaHeader always unset WP-Super-CacheHeader always unset X-Pingback
Top
Protection de la connexion par mot de passe # Password Protect Login
Ceci est très utile pour protéger le fichier wp-login.php
. Vous pouvez utiliser ce générateur htpasswd.
Authentification de base
AuthType BasicAuthName "Password Protected"AuthUserFile /full/path/to/.htpasswdRequire valid-userSatisfy All
Authentification par digest
AuthType DigestAuthName "Password Protected"AuthDigestDomain /wp-login.php https://www.askapache.com/wp-login.phpAuthUserFile /full/path/to/.htpasswdRequire valid-userSatisfy All
Top
Exiger une IP spécifique # Exiger une IP spécifique
C’est un moyen de n’autoriser l’accès qu’à certaines adresses IP.
ErrorDocument 401 defaultErrorDocument 403 defaultOrder deny,allowDeny from allAllow from 198.101.159.98 localhost
Top
Protéger les fichiers sensibles # Protect Sensitive Files
Ceci refuse tout accès web à votre fichier wp-config, error_logs, php.ini, et htaccess/htpasswds.
Order deny,allowDeny from all
Haut de page
Exiger SSL # Require SSL
Ceci forcera SSL, et exigera le nom d’hôte exact, sinon il redirigera vers la version SSL. Utile dans un /wp-admin/.htaccess
fichier.
SSLOptions +StrictRequireSSLRequireSSLSSLRequire %{HTTP_HOST} eq "www.wordpress.com"ErrorDocument 403 https://www.wordpress.com
Top