[SPIP] v3.2.1-->v3.2.2
[lhc/web/www.git] / www / htaccess.txt
1 ##############################################################
2 # Fichier .htaccess SPIP v 3.2 #
3 # #
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 #
7 # #
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 #
11 # #
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 ##############################################################
16
17 RewriteEngine On
18
19 ################ CONFIGURATION ######################
20
21 ### Configuration sous-repertoire
22
23 # Calcule automatiquememt le RewriteBase (qui permet de faire fonctionner
24 # les belles URLs). De la sorte, un meme site peut etre affiche en racine
25 # ou dans un sous repertoire sans devoir modifier la ligne RewriteBase.
26 RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
27 RewriteRule ^(.*) - [E=BASE:%1]
28
29 # En alternative aux 2 lignes precedentes (a commenter dans ce cas),
30 # vous pouvez indiquer un RewriteBase specifique
31 #RewriteBase /
32
33
34 # SPIP version 'php' - si vous avez d'anciennes adresses en '.php[3]',
35 # supprimez le '#' sur les lignes qui suivent pour rediriger les acces
36 # errones vers le .php correspondant
37
38 #RewriteCond %{REQUEST_FILENAME} -f
39 #RewriteRule ^(.+)\.php[3]$ $1.php [QSA,L]
40
41 # Fin version
42 ###
43
44
45 ################ REGLAGES PERSONNALISES ######################
46 # Inscrivez ci-dessous vos reglages supplementaires
47
48
49
50
51 ################ GESTIONS DES URLS SPIP #######################
52
53 # Deux pseudo-actions a present evacuees
54 # N'y at-il pas moyen de REMPLACER un nom dans la QueryString ?
55 RewriteCond %{QUERY_STRING} action=rss
56 RewriteRule spip.php spip.php?page=rss [QSA,L]
57 RewriteCond %{QUERY_STRING} action=ical
58 RewriteRule spip.php spip.php?page=ical_prive [QSA,L]
59
60 ###
61 # Si le fichier ou repertoire demande existe
62 # ignorer toutes les regles qui suivent
63 RewriteCond %{REQUEST_FILENAME} -f
64 RewriteRule "." - [skip=100]
65 RewriteCond %{REQUEST_FILENAME} -d
66 RewriteRule "." - [skip=100]
67 #
68 ###
69
70
71 ###
72 # Compatibilite avec les URLS "html" (pour transition sympa)
73 # voir fichier ecrire/urls/html.php
74 RewriteRule ^rubrique([0-9]+)(\.html)?$ spip.php?page=rubrique&id_rubrique=$1 [QSA,L]
75 RewriteRule ^article([0-9]+)(\.html)?$ spip.php?page=article&id_article=$1 [QSA,L]
76 RewriteRule ^breve([0-9]+)(\.html)?$ spip.php?page=breve&id_breve=$1 [QSA,L]
77 RewriteRule ^mot([0-9]+)(\.html)?$ spip.php?page=mot&id_mot=$1 [QSA,L]
78 RewriteRule ^auteur([0-9]+)(\.html)?$ spip.php?page=auteur&id_auteur=$1 [QSA,L]
79 RewriteRule ^site([0-9]+)(\.html)?$ spip.php?page=site&id_syndic=$1 [QSA,L]
80 # Compatibilite avec les anciennes URLS appelant directement des fichiers php
81 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]
82 RewriteRule ^resume.php[3]? spip.php?page=sommaire [QSA,L]
83 RewriteRule ^page.php[3]? spip.php [QSA,L]
84 RewriteRule ^spip_cal\.php3?$ spip.php?page=ical_prive [QSA,L]
85 RewriteRule ^spip_rss\.php3?$ spip.php?page=rss [QSA,L]
86
87
88 # Fin compatibilite
89 ###
90
91 ###
92 # ping http://site/1234 => article1234
93
94 RewriteRule ^([1-9][0-9]*)$ spip.php?action=redirect&type=article&status=301&id=$1 [QSA,L]
95
96 #
97 ###
98
99 ###
100 # APIs
101 # http://site/xmlrpc.api
102 # http://site/atom.api/articles/1234
103 # https://site/offline.api.sw.js
104
105 RewriteRule ^([\w]+)\.api([/.](.*))?$ spip.php?action=api_$1&arg=$3 [QSA,L]
106
107 # Fin des APIs
108 ###
109
110 ###
111 # URLs "propres", "propres2", "libres", "arbo"
112
113 RewriteRule ^[^\.]+(\.html)?$ spip.php [QSA,E=url_propre:$0,L]
114
115 # Fin URLs "propres" et "propres2"
116 ###
117
118 ###
119 # Divers
120
121 # bloquer les acces aux fichiers caches (.svn, .git, etc)
122 RewriteRule /\\..*(/.*|$) - [F]
123
124 ###
125 # Fichiers "standards" (si absents de la racine)
126 #
127 RewriteRule ^robots[.]txt$ spip.php?page=robots.txt [QSA,L]
128 RewriteRule ^favicon[.]ico$ spip.php?page=favicon.ico [QSA,L]
129 RewriteRule ^sitemap[.]xml$ spip.php?page=sitemap.xml [QSA,L]
130 ##
131
132 # Favicon pour itrucs
133 # 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.
134 #RewriteRule ^apple-touch-icon(-(\d+x\d+))?(-precomposed)?[.]png$ spip.php?page=apple-touch-icon.png&size=$2 [QSA,L]
135
136 # expirer les images (pour contourner gros bug MSIE sur le cache)
137 # note : a decommenter si vous voulez tester
138 #<IfModule mod_expires.c>
139 # ExpiresActive on
140 # ExpiresByType image/gif A3600
141 # ExpiresByType image/jpeg A3600
142 # ExpiresByType image/png A3600
143 #</IfModule>
144
145
146 <IfModule mod_expires.c>
147 ExpiresByType text/html "access plus 0 seconds"
148 </IfModule>
149
150 #################################
151 # gestion des erreurs 404
152 # voir http://www.spip.net/fr_article3226.html
153 # Pour que le serveur http renvoie les erreurs 404 vers SPIP, supprimer le '#'
154
155 # ErrorDocument 404 /spip.php?page=404
156
157 #
158 ###