3 * Plugin Acces Restreint 3.0 pour Spip 2.0
4 * Licence GPL (c) 2006-2008 Cedric Morin
8 if (!defined("_ECRIRE_INC_VERSION")) return;
11 * on essaye de poser un htaccess rewrite global sur IMG/
12 * si fonctionne on gardera des ulrs de document permanente
13 * si ne fonctionne pas on se rabat sur creer_htaccess du core
14 * qui pose un deny sur chaque sous repertoire de IMG/
16 * http://doc.spip.org/@gerer_htaccess
21 function accesrestreint_gerer_htaccess($active = true) {
23 spip_unlink(_DIR_IMG
. _ACCESS_FILE_NAME
);
24 effacer_meta("creer_htaccess");
25 // effacer les xx/.htaccess crees eventuellement par le core
26 include_spip("inc/acces");
33 RewriteCond %{QUERY_STRING} ^(\d+/[\da-f]+)$
34 RewriteRule ^\w+/.*$ ../spip.php?action=api_docrestreint&arg=%1/$0 [skip=100]
35 RewriteRule ^\w+/.*$ ../spip.php?action=api_docrestreint&arg=0/0/$0 [skip=100]
37 ecrire_fichier(_DIR_IMG
. _ACCESS_FILE_NAME
,$rewrite);
38 // verifier sur l'url de test
39 include_spip('inc/distant');
40 $url_test = url_absolue(_DIR_IMG
. "test/.test?0/1");
41 $test = recuperer_page($url_test);
42 // si l'url de test renvoie bien "OK" alors rewrite rule fonctionne et on peut baser la protection de document sur ce shema
44 effacer_meta("creer_htaccess"); // securite, et permet de generer des urls permanentes
47 // sinon on se rabat sur un deny et on generera des urls moches
48 spip_unlink(_DIR_IMG
. _ACCESS_FILE_NAME
);
49 ecrire_meta("creer_htaccess","oui");
51 // dans tous les cas on passe par gerer_htaccess pour enlever ou mettre les .htaccess dans les sous rep
52 include_spip("inc/acces");