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 | Options +FollowSymlinks |
---|
18 | #RewriteLog "rewrite.log" |
---|
19 | #RewriteLogLevel 3 |
---|
20 | |
---|
21 | RewriteEngine On |
---|
22 | |
---|
23 | ################ CONFIGURATION ###################### |
---|
24 | |
---|
25 | ### Configuration sous-repertoire |
---|
26 | |
---|
27 | # Calcule automatiquememt le RewriteBase (qui permet de faire fonctionner |
---|
28 | # les belles URLs). De la sorte, un meme site peut etre affiche en racine |
---|
29 | # ou dans un sous repertoire sans devoir modifier la ligne RewriteBase. |
---|
30 | #RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$ |
---|
31 | #RewriteRule ^(.*) - [E=BASE:%1] |
---|
32 | |
---|
33 | # En alternative aux 2 lignes precedentes (a commenter dans ce cas), |
---|
34 | # vous pouvez indiquer un RewriteBase specifique |
---|
35 | RewriteBase / |
---|
36 | |
---|
37 | |
---|
38 | # SPIP version 'php' - si vous avez d'anciennes adresses en '.php[3]', |
---|
39 | # supprimez le '#' sur les lignes qui suivent pour rediriger les acces |
---|
40 | # errones vers le .php correspondant |
---|
41 | |
---|
42 | #RewriteCond %{REQUEST_FILENAME} -f |
---|
43 | #RewriteRule ^(.+)\.php[3]$ $1.php [QSA,L] |
---|
44 | |
---|
45 | # Fin version |
---|
46 | ### |
---|
47 | |
---|
48 | |
---|
49 | ################ REGLAGES PERSONNALISES ###################### |
---|
50 | # Inscrivez ci-dessous vos reglages supplementaires |
---|
51 | |
---|
52 | # bloquer les acces aux repertoires .svn/ (SPIP, plugins, squelettes...) |
---|
53 | RewriteRule ^(.*/)?\.svn/ - [F] |
---|
54 | |
---|
55 | ################ GESTIONS DES URLS SPIP ####################### |
---|
56 | |
---|
57 | # redirections des anciennes url en erreur 404 |
---|
58 | RedirectPermanent /spikini/ https://contrib.spip.net/Carnet-SPIP |
---|
59 | |
---|
60 | # Redirection *.spip.org |
---|
61 | RewriteCond %{HTTP_HOST} stats.spip.org |
---|
62 | RewriteRule ^.*$ https://stats.spip.net/$0 [QSA,L,R=301,skip=100] |
---|
63 | |
---|
64 | RewriteCond %{HTTP_HOST} files.spip.org |
---|
65 | RewriteRule ^spip/archives/SPIP-3.1-RC.zip$ https://files.spip.net/spip/archives/SPIP-vtrois.1.0-rc.zip |
---|
66 | |
---|
67 | # Redirection files.spip.net |
---|
68 | RewriteCond %{HTTP_HOST} files.spip.org |
---|
69 | RewriteRule ^spip-zone/$ https://plugins.spip.net/spip.php?page=telechargements |
---|
70 | # sommaire |
---|
71 | RewriteCond %{HTTP_HOST} files.spip.net |
---|
72 | RewriteRule ^spip-zone/$ https://plugins.spip.net/spip.php?page=telechargements |
---|
73 | |
---|
74 | # les repertoires, remappes |
---|
75 | RewriteCond %{HTTP_HOST} files.spip.net |
---|
76 | RewriteRule ^$ spip.php?page=paquets&dir=/ [QSA,E=url_propre:'',skip=100] |
---|
77 | RewriteCond %{HTTP_HOST} files.spip.net |
---|
78 | #RewriteCond /home/spipcont/www/paquets/%{REQUEST_URI} -d |
---|
79 | RewriteRule ^(.+/)$ spip.php?page=paquets&dir=$1 [QSA,E=url_propre:'',skip=100] |
---|
80 | RewriteCond %{HTTP_HOST} files.spip.org |
---|
81 | RewriteRule ^$ spip.php?page=paquets&dir=/ [QSA,E=url_propre:'',skip=100] |
---|
82 | RewriteCond %{HTTP_HOST} files.spip.org |
---|
83 | #RewriteCond /home/spipcont/www/paquets/%{REQUEST_URI} -d |
---|
84 | RewriteRule ^(.+/)$ spip.php?page=paquets&dir=$1 [QSA,E=url_propre:'',skip=100] |
---|
85 | |
---|
86 | # Redirection stats.spip.net |
---|
87 | RewriteCond %{HTTP_HOST} stats.spip.net |
---|
88 | RewriteRule ^$ spip.php?page=stats [QSA,skip=100] |
---|
89 | |
---|
90 | # Deux pseudo-actions a present evacuees |
---|
91 | # N'y at-il pas moyen de REMPLACER un nom dans la QueryString ? |
---|
92 | RewriteCond %{QUERY_STRING} action=rss |
---|
93 | RewriteRule spip.php spip.php?page=rss [QSA,L] |
---|
94 | RewriteCond %{QUERY_STRING} action=ical |
---|
95 | RewriteRule spip.php spip.php?page=ical_prive [QSA,L] |
---|
96 | |
---|
97 | ### |
---|
98 | # Si le fichier ou repertoire demande existe |
---|
99 | # ignorer toutes les regles qui suivent |
---|
100 | RewriteCond %{REQUEST_FILENAME} -f |
---|
101 | RewriteRule "." - [skip=100] |
---|
102 | RewriteCond %{REQUEST_FILENAME} -d |
---|
103 | RewriteRule "." - [skip=100] |
---|
104 | # |
---|
105 | ### |
---|
106 | |
---|
107 | |
---|
108 | ### |
---|
109 | # Compatibilite avec les URLS "html" (pour transition sympa) |
---|
110 | # voir fichier ecrire/urls/html.php |
---|
111 | RewriteRule ^rubrique([0-9]+)(\.html)?$ spip.php?page=rubrique&id_rubrique=$1 [QSA,L] |
---|
112 | RewriteRule ^article([0-9]+)(\.html)?$ spip.php?page=article&id_article=$1 [QSA,L] |
---|
113 | RewriteRule ^breve([0-9]+)(\.html)?$ spip.php?page=breve&id_breve=$1 [QSA,L] |
---|
114 | RewriteRule ^mot([0-9]+)(\.html)?$ spip.php?page=mot&id_mot=$1 [QSA,L] |
---|
115 | RewriteRule ^auteur([0-9]+)(\.html)?$ spip.php?page=auteur&id_auteur=$1 [QSA,L] |
---|
116 | RewriteRule ^site([0-9]+)(\.html)?$ spip.php?page=site&id_syndic=$1 [QSA,L] |
---|
117 | # Compatibilite avec les anciennes URLS appelant directement des fichiers php |
---|
118 | 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] |
---|
119 | RewriteRule ^resume.php[3]? spip.php?page=sommaire [QSA,L] |
---|
120 | RewriteRule ^page.php[3]? spip.php [QSA,L] |
---|
121 | RewriteRule ^spip_cal\.php3?$ spip.php?page=ical_prive [QSA,L] |
---|
122 | RewriteRule ^spip_rss\.php3?$ spip.php?page=rss [QSA,L] |
---|
123 | |
---|
124 | |
---|
125 | # Fin compatibilite |
---|
126 | ### |
---|
127 | |
---|
128 | ### |
---|
129 | # ping http://site/1234 => article1234 |
---|
130 | |
---|
131 | RewriteRule ^([1-9][0-9]*)$ spip.php?action=redirect&type=article&status=301&id=$1 [QSA,L] |
---|
132 | |
---|
133 | # |
---|
134 | ### |
---|
135 | |
---|
136 | ### |
---|
137 | # APIs |
---|
138 | # http://site/xmlrpc.api |
---|
139 | # http://site/atom.api/articles/1234 |
---|
140 | |
---|
141 | RewriteRule ^([\w]+)\.api(/(.*))?$ spip.php?action=api_$1&arg=$3 [QSA,L] |
---|
142 | |
---|
143 | # Fin des APIs |
---|
144 | ### |
---|
145 | |
---|
146 | ### |
---|
147 | # URLs "propres", "propres2", "libres", "arbo" |
---|
148 | |
---|
149 | RewriteRule ^[^\.]+(\.html)?$ spip.php [QSA,E=url_propre:$0,L] |
---|
150 | |
---|
151 | # Fin URLs "propres" et "propres2" |
---|
152 | ### |
---|
153 | |
---|
154 | ### |
---|
155 | # Divers |
---|
156 | |
---|
157 | # bloquer les acces aux fichiers caches (.svn, .git, etc) |
---|
158 | RewriteRule /\\..*(/.*|$) - [F] |
---|
159 | |
---|
160 | ### |
---|
161 | # Fichiers "standards" (si absents de la racine) |
---|
162 | # |
---|
163 | RewriteRule ^robots[.]txt$ spip.php?page=robots.txt [QSA,L] |
---|
164 | RewriteRule ^favicon[.]ico$ spip.php?page=favicon.ico [QSA,L] |
---|
165 | RewriteRule ^sitemap[.]xml$ spip.php?page=sitemap.xml [QSA,L] |
---|
166 | ## |
---|
167 | |
---|
168 | # Favicon pour itrucs |
---|
169 | # 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. |
---|
170 | #RewriteRule ^apple-touch-icon(-(\d+x\d+))?(-precomposed)?[.]png$ spip.php?page=apple-touch-icon.png&size=$2 [QSA,L] |
---|
171 | |
---|
172 | # expirer les images (pour contourner gros bug MSIE sur le cache) |
---|
173 | # note : a decommenter si vous voulez tester |
---|
174 | #<IfModule mod_expires.c> |
---|
175 | # ExpiresActive on |
---|
176 | # ExpiresByType image/gif A3600 |
---|
177 | # ExpiresByType image/jpeg A3600 |
---|
178 | # ExpiresByType image/png A3600 |
---|
179 | #</IfModule> |
---|
180 | |
---|
181 | RewriteRule ^Widgets-Editer-directement-sur-le Les-Crayons [r] |
---|
182 | |
---|
183 | <IfModule mod_expires.c> |
---|
184 | # Expiration des pages : |
---|
185 | ExpiresActive On |
---|
186 | ExpiresByType image/gif A86400 |
---|
187 | ExpiresByType image/png A86400 |
---|
188 | ExpiresByType image/jpeg A86400 |
---|
189 | ExpiresByType application/x-javascript A86400 |
---|
190 | ExpiresByType text/css A86400 |
---|
191 | ExpiresByType application/xml A600 |
---|
192 | #ExpiresByType text/html A14400 |
---|
193 | #ExpiresByType application/x-httpd-php A14400 |
---|
194 | </IfModule> |
---|
195 | |
---|
196 | ################################# |
---|
197 | # gestion des erreurs 404 |
---|
198 | # voir http://www.spip.net/fr_article3226.html |
---|
199 | # Pour que le serveur http renvoie les erreurs 404 vers SPIP, supprimer le '#' |
---|
200 | |
---|
201 | # ErrorDocument 404 /spip.php?page=404 |
---|
202 | |
---|
203 | # |
---|
204 | ### |
---|