ono Posté 20 Novembre 2008 Posté 20 Novembre 2008 Bonjour, Je souhaite sécuriser un site via différents htaccess configuré selon les besoins dans le répertoire racine et ses sous-répertoires. Tout se déroule mais je bloque sur un point. Je souhaite que dans le répertoire racine, le visiteur ne puisse appeler que la page d'index. Pour ce, j'ai placé dans le htaccess racine: Order deny,allow Deny from all <Files "index.php"> Order deny,allow Allow from all </Files> donc, un appel http://monsite/rep/index.php fonctionne très bien et un appel http://monsite/rep/autreFichier.php est refusé ce qui est l'effet recherché. Par contre, ce qui ne va plus avec ce htaccess, la redirection automatique sur le fichier index de la racine, autrement dit: l'appel http://monsite/rep ne pointe plus sur le fichier index.php J'ai essayé ce qui suit: RewriteEngine on redirect / /index.php => retourne une erreur 500 DirectoryIndex index.php => sans effet J'ai également essayé un redirectPermanent sans succès. Quelqu'un aurait-il une information lumineuse ? Merci pour votre collaboration.
Remi Posté 20 Novembre 2008 Posté 20 Novembre 2008 Sur la requête sur le nom de répertoire seul, le serveur va normalement chercher en premier index.html puis index.htm puis index.php (cela peut dépendre de la configuration serveur toutefois, mais en général c'est ça). Comme ton index.html est interdit, cela ne marche pas. C'est normal... Donc j'autoriserais index.html et index.htm au même titre que index.php. Cela devrait régler le problème.
ono Posté 20 Novembre 2008 Auteur Posté 20 Novembre 2008 Merci Remi pour ta réponse. En réalité, si je supprime htaccess à la racine, le serveur trouve sans problème index.php après appel du seul répertoire => probablement configuré dans httpd.conf. Le fait d'ajouter le htaccess (du moins comme je l'ai configuré) supprime ce pointage automatique malgré mes essais de surcharge (directoryIndex, ...)
Remi Posté 20 Novembre 2008 Posté 20 Novembre 2008 Bon, j'ai voulu expliquer le principe mais je n'ai pas été assez direct. Voici la version courte : Remplace <Files "index.php"> par <FilesMatch "index\.(php|htm|html)$">
ono Posté 20 Novembre 2008 Auteur Posté 20 Novembre 2008 Merci Remi: ça tourne. J'aime bien quand tu es plus direct.
Remi Posté 20 Novembre 2008 Posté 20 Novembre 2008 Ben oui mais j'aime bien comprendre le principe de fonctionnement des choses, donc j'explique. mais bon... Tiens j'ai fait un petit oubli (pas bien grave) : C'est <FilesMatch "^index\.(php|htm|html)$"> (il y a un circonflexe au début de 'index'. Tel que je l'avais écrit, un éventuel fichier totoindex.php ou titiindex.php serait autorisé aussi On ne sait jamais...)
ono Posté 29 Novembre 2008 Auteur Posté 29 Novembre 2008 Remi, A ne plus rien y comprendre...il me semblait que cela fonctionnait mais, en réalité, non... Voici mon dernier htaccess Order deny,allow Deny from all <FilesMatch "^index\.(html|htm|php)$"> Order deny,allow Allow from all </FilesMatch> Appel direct http://monsite/rep/index.php => ok Appel http://monsite/rep => 403 Si j'autorise à nouveau tous les fichiers, l'appel seul du répertoire redirige bien sur index.php Une idée ? Merci à toi
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant