############################################################## # Fichier .htaccess SPIP v 4.2 # # # # Permet de controler les URLs et la version de php utilisee # # Compatible avec les URLs 'html', 'propres' et 'propres2' # # # # Pour utiliser ce fichier renommez-le '.htaccess' dans le # # repertoire racine du site, en veillant a ne pas ecraser un # # .htaccess personnalise qui s'y trouverait deja # # # # Attention certains hebergeurs desactivent tout ou partie # # des fonctions du fichier .htaccess ; celui-ci est donc # # indicatif - en cas de difficulte voir sur les forums SPIP # ############################################################## RewriteEngine On ################ CONFIGURATION ###################### ### Configuration sous-repertoire # Calcule automatiquememt le RewriteBase (qui permet de faire fonctionner # les belles URLs). De la sorte, un meme site peut etre affiche en racine # ou dans un sous repertoire sans devoir modifier la ligne RewriteBase. RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$ RewriteRule ^(.*) - [E=BASE:%1] # En alternative aux 2 lignes precedentes (a commenter dans ce cas), # vous pouvez indiquer un RewriteBase specifique #RewriteBase / ### ################ REGLAGES PERSONNALISES ###################### # Inscrivez ci-dessous vos reglages supplementaires ############# GESTIONS DES ACCES FICHIERS ##################### ### # bloquer les acces aux fichiers caches (.svn, .git, etc) RewriteCond %{REQUEST_URI} !^/.well-known/ RewriteRule "(^|/)\." - [R=404,NC,L] # bloquer les informations Composer RedirectMatch 404 ^/composer\.(json|lock|phar)$ # Si le fichier ou repertoire demande existe # ignorer toutes les regles qui suivent RewriteCond %{REQUEST_FILENAME} -f RewriteRule \.pdf$ - [skip=100] RewriteCond %{REQUEST_FILENAME} -f RewriteRule ^IMG/ - [env=sandbox:sandbox,skip=100] Header add Content-Security-Policy "sandbox" env=sandbox RewriteCond %{REQUEST_FILENAME} -f RewriteRule "." - [skip=100] RewriteCond %{REQUEST_FILENAME} -d RewriteRule "." - [skip=100] # ### ################ GESTIONS DES URLS SPIP ####################### ### ### # Compatibilite avec les URLS "html" (pour transition sympa) # voir fichier ecrire/urls/html.php RewriteRule ^rubrique([0-9]+)(\.html)?$ spip.php?page=rubrique&id_rubrique=$1 [QSA,L] RewriteRule ^article([0-9]+)(\.html)?$ spip.php?page=article&id_article=$1 [QSA,L] RewriteRule ^breve([0-9]+)(\.html)?$ spip.php?page=breve&id_breve=$1 [QSA,L] RewriteRule ^mot([0-9]+)(\.html)?$ spip.php?page=mot&id_mot=$1 [QSA,L] RewriteRule ^auteur([0-9]+)(\.html)?$ spip.php?page=auteur&id_auteur=$1 [QSA,L] RewriteRule ^site([0-9]+)(\.html)?$ spip.php?page=site&id_syndic=$1 [QSA,L] # Fin compatibilite ### ### # ping http://site/1234 => article1234 RewriteRule ^([1-9][0-9]*)$ spip.php?action=redirect&type=article&status=301&id=$1 [QSA,L] # ### ### # APIs # http://site/xmlrpc.api # http://site/atom.api/articles/1234 # https://site/offline.api.sw.js RewriteRule ^(ecrire/)?([\w]+)\.api([/.](.*))?$ spip.php?action=api_$2&arg=$4 [QSA,L] # Fin des APIs ### ### # URLs "propres", "propres2", "libres", "arbo" RewriteRule ^[^\.]+(\.html)?$ spip.php [QSA,E=url_propre:$0,L] # Fin URLs "propres" et "propres2" ### ### # Divers ### # Fichiers "standards" (si absents de la racine) # RewriteRule ^robots[.]txt$ spip.php?page=robots.txt [QSA,L] RewriteRule ^favicon[.]ico$ spip.php?page=favicon.ico [QSA,L] RewriteRule ^sitemap[.]xml$ spip.php?page=sitemap.xml [QSA,L] ## # Favicon pour itrucs # Si vous avez le plugin filtres_images et qu'une méthode de retouche a été configurée, vous pouvez décommenter la ligne ci-dessous. #RewriteRule ^apple-touch-icon(-(\d+x\d+))?(-precomposed)?[.]png$ spip.php?page=apple-touch-icon.png&size=$2 [QSA,L] ExpiresByType text/html "access plus 0 seconds" ################################# # gestion des erreurs 404 # voir https://www.spip.net/fr_article3226.html # Pour que le serveur http renvoie les erreurs 404 vers SPIP, supprimer le '#' # ErrorDocument 404 /spip.php?page=404 # ###