Bonjour !
Je vous explique ma situation.
J'ai un serveur de développement protégé par authentification via Apache (/www inaccessible sans login/mdp).
Je veux enlever toute forme d'authentification sur un répertoire contenu dans /www pour certaines IP : exemple => /www/toto
Je rajoute donc la ligne qui va bien dans mon httpd.conf :
Jusque là tout va bien, je teste avec IP_1, je peux accéder à /www/toto/mon_script.php sans autorisation. C'est gagné !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <Directory "/home/monsite/www/toto"> AuthType Basic AuthName "Restricted access" AuthUserFile /usr/local/apache2/passwds Require user admin AllowOverride All Order allow,deny Options ExecCGI FollowSymLinks Allow from IP_1 Allow from IP_2 Allow from IP_3 Satisfy any </Directory>
Mais c'est là que les choses se corsent.
Ce fichier /www/toto/mon_script.php n'est pas censé être atteint en faisant une requête directement dessus. En effet, ce script est un gestionnaire d'API REST. En gros je redirige vers lui toutes les requêtes du style http://www.monsite.com/api/param1/param2 ... etc
Je fais donc cette redirection dans .htaccess avec quelque chose du style
La redirection en elle même fonctionne parfaitement bien, MAIS, si j'effectue une requête sur http://www.monsite.com/api/quelquechose avec IP_1, j'ai une demande d'authentification alors que la ressource réelle à laquelle il accède est "ouverte" !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 RewriteEngine on Options +FollowSymLinks RewriteRule ^api/ toto/mon_script.php
Je résume
IP_1 : GET http://www.monsite.com/toto/mon_script.php => OK, pas d'authentification.
IP_1 : GET http://www.monsite.com/api/quelquechose (qui donc est redirigé vers http://www.monsite.com/toto/mon_script.php) => PAS OK, 401 - authentification requise.
Comment contourner l'authentification dans ce cas-là ?
Merci d'avance à ceux qui auront des éléments de réponse![]()
Partager