1 ##############################################################
2 # Fichier .htaccess SPIP v 3.0 #
4 # Permet de controler les URLs et la version de php utilisee #
5 # Compatible avec les URLs 'html', 'propres' et 'propres2' #
6 # Permet aussi d'effectuer la transition de .PHP 3 vers .PHP #
8 # Pour utiliser ce fichier renommez-le '.htaccess' dans le #
9 # repertoire racine du site, en veillant a ne pas ecraser un #
10 # .htaccess personnalise qui s'y trouverait deja #
12 # Attention certains hebergeurs desactivent tout ou partie #
13 # des fonctions du fichier .htaccess ; celui-ci est donc #
14 # indicatif - en cas de difficulte voir sur les forums SPIP #
15 ##############################################################
19 ################ CONFIGURATION ######################
21 ### Configuration sous-repertoire
22 # Chez la plupart des hebergeurs il faut indiquer "RewriteBase /"
23 # sinon modifiez cette ligne
28 # SPIP version 'php' - si vous avez d'anciennes adresses en '.php[3]',
29 # supprimez le '#' sur les lignes qui suivent pour rediriger les acces
30 # errones vers le .php correspondant
32 #RewriteCond %{REQUEST_FILENAME} -f
33 #RewriteRule ^(.+)\.php[3]$ $1.php [QSA,L]
39 ################ REGLAGES PERSONNALISES ######################
40 # Inscrivez ci-dessous vos reglages supplementaires
45 ################ GESTIONS DES URLS SPIP #######################
47 # Deux pseudo-actions a present evacuees
48 # N'y at-il pas moyen de REMPLACER un nom dans la QueryString ?
49 RewriteCond %{QUERY_STRING} action=rss
50 RewriteRule spip.php spip.php?page=rss [QSA,L]
51 RewriteCond %{QUERY_STRING} action=ical
52 RewriteRule spip.php spip.php?page=ical_prive [QSA,L]
55 # Si le fichier ou repertoire demande existe
56 # ignorer toutes les regles qui suivent
57 RewriteCond %{REQUEST_FILENAME} -f
58 RewriteRule "." - [skip=100]
59 RewriteCond %{REQUEST_FILENAME} -d
60 RewriteRule "." - [skip=100]
66 # Compatibilite avec les URLS "html" (pour transition sympa)
67 # voir fichier ecrire/urls/html.php
68 RewriteRule ^rubrique([0-9]+)(\.html)?$ spip.php?page=rubrique&id_rubrique=$1 [QSA,L]
69 RewriteRule ^article([0-9]+)(\.html)?$ spip.php?page=article&id_article=$1 [QSA,L]
70 RewriteRule ^breve([0-9]+)(\.html)?$ spip.php?page=breve&id_breve=$1 [QSA,L]
71 RewriteRule ^mot([0-9]+)(\.html)?$ spip.php?page=mot&id_mot=$1 [QSA,L]
72 RewriteRule ^auteur([0-9]+)(\.html)?$ spip.php?page=auteur&id_auteur=$1 [QSA,L]
73 RewriteRule ^site([0-9]+)(\.html)?$ spip.php?page=site&id_syndic=$1 [QSA,L]
74 # Compatibilite avec les anciennes URLS appelant directement des fichiers php
75 RewriteRule ^(rubrique|article|breve|mot|auteur|site|agenda|backend|backend-breves|distrib|forum|ical|plan|recherche|sommaire|sommaire_texte)\.php3?$ spip.php?page=$1 [QSA,L]
76 RewriteRule ^resume.php[3]? spip.php?page=sommaire [QSA,L]
77 RewriteRule ^page.php[3]? spip.php [QSA,L]
78 RewriteRule ^spip_cal\.php3?$ spip.php?page=ical_prive [QSA,L]
79 RewriteRule ^spip_rss\.php3?$ spip.php?page=rss [QSA,L]
86 # ping http://site/1234 => article1234
88 RewriteRule ^([1-9][0-9]*)$ spip.php?action=redirect&type=article&status=301&id=$1 [QSA,L]
95 # http://site/xmlrpc.api
96 # http://site/atom.api/articles/1234
98 RewriteRule ^([\w]+)\.api(/(.*))?$ spip.php?action=api_$1&arg=$3 [QSA,L]
104 # URLs "propres", "propres2", "libres", "arbo"
106 RewriteRule ^[^\.]+(\.html)?$ spip.php [QSA,E=url_propre:$0,L]
108 # Fin URLs "propres" et "propres2"
114 # bloquer les acces aux repertoires .svn/ (SPIP, plugins, squelettes...)
115 RewriteRule ^(.*/)?\.svn/ - [F]
118 # Fichiers "standards" (si absents de la racine)
120 RewriteRule ^robots[.]txt$ spip.php?page=robots.txt [QSA,L]
121 RewriteRule ^favicon[.]ico$ spip.php?page=favicon.ico [QSA,L]
122 RewriteRule ^sitemap[.]xml$ spip.php?page=sitemap.xml [QSA,L]
126 # expirer les images (pour contourner gros bug MSIE sur le cache)
127 # note : a decommenter si vous voulez tester
128 #<IfModule mod_expires.c>
130 # ExpiresByType image/gif A3600
131 # ExpiresByType image/jpeg A3600
132 # ExpiresByType image/png A3600
136 <IfModule mod_expires.c>
137 ExpiresByType text/html "access plus 0 seconds"
140 #################################
141 # gestion des erreurs 404
142 # voir http://www.spip.net/fr_article3226.html
143 # Pour que le serveur http renvoie les erreurs 404 vers SPIP, supprimer le '#'
145 # ErrorDocument 404 /spip.php?page=404