kloh-fr/kit-htaccess/master/.htaccess
########################################################################
# Sources et inspirations
# - server-configs-apache par H5BP : https://github.com/h5bp/server-configs-apache/blob/master/.htaccess
# - bpi-htaccess par Corinne Schillinger : https://github.com/inseo/bpi-htaccess/blob/master/.htaccess
# - htaccess par Gaël Poupard
# Sous [licence MIT](http://opensource.org/licenses/MIT "The MIT licence")
########################################################################
# Redirections
########################################################################
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine on
</IfModule>
# Redirections spécifiques
#-----------------------------------------------------------------------
Redirect permanent /dossier/ http://dossier.domaine.com/
# WordPress
#-----------------------------------------------------------------------
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# Pages d'erreur personnalisées
########################################################################
ErrorDocument 401 /erreur/401.html
ErrorDocument 403 /erreur/403.html
ErrorDocument 404 /erreur/404.html
ErrorDocument 408 /erreur/408.html
ErrorDocument 500 /erreur/500.html
ErrorDocument 503 /erreur/503.html
# Mode de compatibilité Internet Explorer
########################################################################
# Bloquer le mode de compatibilité et forcer la dernière version
#-----------------------------------------------------------------------
<IfModule mod_headers.c>
Header set X-UA-Compatible "IE=Edge,chrome=1"
# Désactiver l'envoi du header sur les fichiers qui n'en ont pas besoin
<FilesMatch ".(appcache|crx|css|eot|gif|htc|ico|jpe?g|js|m4a|m4v|manifest|mp4|oex|oga|ogg|ogv|otf|pdf|png|safariextz|svg|svgz|ttf|vcf|webm|webp|woff|xml|xpi)$">
Header unset X-UA-Compatible
</FilesMatch>
</IfModule>
# Types MIME
########################################################################
# Associer un type MIME à certaines extensions
# Tip : pour forcer un type de fichier à être téléchargé : AddType application/octet-stream .extension
# JavaScript / JSON
#-----------------------------------------------------------------------
# Écrase les types MIME text/javascript erronés
AddType application/javascript js
AddType application/json json map
AddType application/ld+json jsonld
# SVG
#-----------------------------------------------------------------------
# Requis pour les fonts SVG sur iPad : twitter.com/FontSquirrel/status/14855840545
AddType image/svg+xml svg svgz
AddEncoding gzip svgz
# Fonts
#-----------------------------------------------------------------------
AddType application/vnd.ms-fontobject eot
AddType application/x-font-ttf ttf ttc
AddType font/opentype otf
AddType application/x-font-woff woff
# Audio
#-----------------------------------------------------------------------
AddType audio/mp4 m4a f4a f4b
AddType audio/ogg oga ogg opus
# Vidéo
#-----------------------------------------------------------------------
AddType video/mp4 f4v f4p m4v mp4
AddType video/ogg ogv
AddType video/webm webm
AddType video/x-flv flv
# Images
#-----------------------------------------------------------------------
AddType image/x-icon ico
AddType image/jpeg jpeg jpg jpe JPG
AddType image/gif gif GIF
# Autres
#-----------------------------------------------------------------------
AddType application/octet-stream safariextz
AddType application/x-chrome-extension crx
AddType application/x-opera-extension oex
AddType application/x-web-app-manifest+json webapp
AddType application/x-xpinstall xpi
AddType application/xml atom rdf rss xml
AddType image/webp webp
AddType image/x-icon cur
AddType text/cache-manifest appcache manifest
AddType text/vtt vtt
AddType text/x-component htc
AddType text/x-vcard vcf
# Encodage et langue
########################################################################
# Déclarer UTF-8 comme jeu de caractères par défaut (appliqué par défaut aux fichiers de type text/plain et text/html)
#-----------------------------------------------------------------------
AddDefaultCharset utf-8
# Forcer l'encodage UTF-8 sur certains fichiers
#-----------------------------------------------------------------------
<IfModule mod_mime.c>
AddCharset utf-8 .css .js .json .jsonld .xml .rss .atom
</IfModule>
# Définir la langue par défaut
#-----------------------------------------------------------------------
DefaultLanguage fr-FR
# Performances
########################################################################
# ETag
#-----------------------------------------------------------------------
# Supprimer l'en-tête Etag
<IfModule mod_headers.c>
Header unset ETag
</IfModule>
# Si mod_headers n'est pas disponible, l'instruction FileETag None est appliquée (cette instruction n'est pas suffisante pour tous les serveurs)
FileETag None
# Compression Gzip
#-----------------------------------------------------------------------
<IfModule mod_deflate.c>
# Identifier les en-têtes modifiés et forcer le support de la compression : developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping/
<IfModule mod_setenvif.c>
<IfModule mod_headers.c>
SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)s*,?s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
</IfModule>
</IfModule>
# Compresser tous les fichiers en fonction de leur type MIME
<IfModule mod_filter.c>
AddOutputFilterByType DEFLATE application/atom+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/json
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
AddOutputFilterByType DEFLATE application/x-font-ttf
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE font/opentype
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE image/x-icon
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/x-component
AddOutputFilterByType DEFLATE text/xml
</IfModule>
</IfModule>
# Expiration des données
#-----------------------------------------------------------------------
<IfModule mod_expires.c>
ExpiresActive on
# Durée par défaut
ExpiresDefault "access plus 1 month"
# HTML
ExpiresByType text/html "access plus 0 seconds"
# Cache manifeste
ExpiresByType text/cache-manifest "access plus 0 seconds"
# Données
ExpiresByType text/xml "access plus 0 seconds"
ExpiresByType application/xml "access plus 0 seconds"
ExpiresByType application/json "access plus 0 seconds"
ExpiresByType application/ld+json "access plus 0 seconds"
# Composants HTC
ExpiresByType text/x-component "access plus 1 month"
# Favicon
ExpiresByType image/x-icon "access plus 1 year"
# Images, audio et vidéo
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType video/ogg "access plus 1 month"
ExpiresByType audio/ogg "access plus 1 month"
ExpiresByType video/mp4 "access plus 1 month"
ExpiresByType video/webm "access plus 1 month"
# Fonts
ExpiresByType application/x-font-ttf "access plus 1 month"
ExpiresByType font/opentype "access plus 1 month"
ExpiresByType application/x-font-woff "access plus 1 month"
ExpiresByType image/svg+xml "access plus 1 month"
ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
# CSS et JavaScript
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
# Flux de syndication
ExpiresByType application/rss+xml "access plus 1 hour"
ExpiresByType application/atom+xml "access plus 1 hour"
</IfModule>
# Sécurité
########################################################################
# Interdire la lecture d'un répertoire sans fichier index
#-----------------------------------------------------------------------
<IfModule mod_autoindex.c>
Options -Indexes
</IfModule>
# Interdire l'accès au fichier htaccess
#-----------------------------------------------------------------------
<Files .htaccess>
Order allow,deny
Deny from all
</Files>
# Interdire l'accès au fichier wp-config
#-----------------------------------------------------------------------
<Files wp-config.php>
Order allow,deny
Deny from all
</Files>
On Github License
Files