Bonjour à tous,
J'ai un petit problème avec Spip.
Après étude du fichier inc_auth.php, j'en ai déduis que l'accès à la partie
privée s'effectue après contrôle par le serveur (via .htaccess) et
l'affichage en fonction des droits dans la base Mysql.
J'utilise Spip sous apache 1.3.22 / win32 pour le développement et j'ai été
très surpris de constater la chose suivante:
Lorsqu'Apache est configuré avec "AccessFileName htaccess" (pas de point
devant htaccess), l'authentification dans la partie privée du site se fait
et bien. Bizarre lorsqu'on sait que Spip utilise .htaccess.
Mais le plus fort est que lorsqu'Apache est configuré avec "AccessFileName
.htaccess" (avec le point donc), ben là, ça marche plus du tout !!
L'authentification est systématiquement refusée.
Pour le second cas, j'aurais bien une explication: le fichier .htpasswd est
généré avec la fonction crypt de php plus le fameux "grain de sel". Sans
doute apache n'utilise-t-il pas le même système et donc ne reconnaît pas les
mots de passe. Admettons.
Mais pourquoi diable réalise-t-il l'authentification sur un fichier
.htaccess lorsqu'il n'est pas configuré pour ???
Merci de vos lumières.
@+
JB
Salut Jean-Baptiste,
Tu as mal étudié le fichier inc_auth.php3 :))
En fait il y a deux systèmes d'authentification dans Spip, l'un
étant activé si l'autre n'est pas disponible est vice-versa (hem).
Le premier est bien le .htaccess, le deuxième est l'authentification
PHP (c'est-à-dire que les en-têtes HTTP de demande d'authentification
sont envoyés à la main).
Normalement, sous Windows, l'authentification .htaccess ne doit pas être
utilisée, car comme tu l'as deviné, la fonction crypt() de PHP n'y
est que rarement compatible avec celle d'Apache (contrairement à
Unix). Cependant, l'utilisation de l'autre méthode se fait selon
l'installation de PHP en module Apache (sinon elle n'est pas disponible :
le serveur renverrait une erreur 500 - Internal Error).
Cette détection se fait selon la signature du serveur, qui doit contenir
"Apache" et "PHP". Ce n'est pas très subtil comme détection, et ça foire
peut-être des fois. Il faut que je pense à rajouter quelque chose de plus
sûr, en fonction de la version de PHP. Regarde donc si la signature
d'Apache contient bien la mention de PHP, sinon c'est que ça vient
de là.
Amicalement
Antoine.
J'ai un probleme d'acces au site privé avec un spip 1.3
dans le navigateur cela me donne une erreur de dns et dans les logs du serveur un 301 (qui est un 'succes permanent redirection') ...
Le premier est bien le .htaccess, le deuxième est l'authentification
PHP (c'est-à-dire que les en-têtes HTTP de demande d'authentification
sont envoyés à la main).
y'a t'il un moyen de savoir par lequel on passe ?
J'utilise un htaccess, mais il n'a pas l'air de faire grand chose...
Pouvez-vous me donner un exemple de .htaccess qui marcherait pour spip 1.3 ?
Cette détection se fait selon la signature du serveur, qui doit contenir
"Apache" et "PHP". Ce n'est pas très subtil comme détection, et ça foire
peut-être des fois.
Dans le cas de mon hebergeur (tuxfamily) le serveur n'a pas de SERVER_SIGNATURE
en revanche il a un SERVER_SOFTWARE
Pensez vous que ca vienne de ca ?
amicalement,
Nicolas
www.vulgum.org
Désolé pour l'affolement.... je tournais un peu en rond voila pourquoi mon dernier post etait confu.
Chez tux apparemment tout se passe tres bien si l'on installe spip dans un rep fils du rep racine. C'est tout faut le savoir.
Dans le cas de mon hebergeur (tuxfamily) le serveur n'a pas de SERVER_SIGNATURE
en revanche il a un SERVER_SOFTWARE
Ca j'ai matté un peu le code et c'est bien le server_software demandée dans les pages...
Trop de flippe, trop de flippe....
Pouvez-vous me donner un exemple de .htaccess qui marcherait pour spip 1.3 ?
Ca j'aimerais bien avoir des exemples ! Si qq1 veut bien publié son .htaccess de spip...
Aurais-je raté une doc sur le site d'uzine qui montre des exemples ?
Bien à vous,
Nico
vulgum.org