Bonjour à tous.

Je voudrais régler les droits d'accès aux fichiers depuis FileZilla.
Quelle valeur numérique conseillez-vous pour les répertoires et pour les fichiers sachant que :

1. Je veux interdire de lister les répertoires, action qui renverra un code 403. Par exemple si une image d'URL images/monimage.png existe, elle doit s'afficher normalement quand on l'appelle. Si on veut par contre voir l'URL de "image/" on doit voir un message d'erreur 403.

2. Si une page n'existe pas, elle doit être gérée par un code 404.

3. Dans .htaccess, j'ai écrit
# Redirection des erreurs
ErrorDocument 404 /mondossier/404.php
ErrorDocument 403 /mondossier/403.php
ErrorDocument 500 "Vous n'avez pas le droit de voir ce fichier"


Actuellement, j'ai utilisé les valeurs numériques 604 pour les fichiers et 701 pour les répertoires.

La lecture d'un répertoire amène bien la redirection sur la page 403.php.
La lecture d'une page inexistante amène malheureusement aussi sur la page 403.php, alors que je la voudrais rediriger sur la page 404.php.

Merci pour votre aide.
Modifié par Pyanepsion (17 Jun 2012 - 12:16)
Modérateur
Bonjour,

pour empêcher le listage sous apache:

htacess a écrit :

Options -Indexes

Cette option empêchera le listage et enverra une erreur 403 automatiquement. (C'est pas beau la vie?)
Les répertoires ne sont déjà actuellement pas lus. Le problème ce sont les pages inexistantes qui sont redirigées sur 403.php au lieu de 404.php.

Si je mets
Options -Indexes

ça bloque le site.
Cela ne change rien. Par contre je constate que si la page appelée absente est à la racine, on est bien redirigé sur la page 404.php. Si la page absente se trouve dans un répertoire avec la permission 604, la page absente est redirigée vers 403.php
il faut mettre ".htaccess" dans le répertoire racine. De plus, tu n'en mets qu'un seul sous ton site, c'est largement suffisant. Chez moi, cela fonctionne correctement. Si je demande d'accéder par exemple à : "mon.site.fr/repertoire.index.htm" et que celui-ci n'existe pas, il me mets une erreur 404 !

Voici un extrait de mon ".htaccess". Mon site ce trouve sur mon ordinateur, et il est destiné à faire des tests uniquement. Si cela peut être utilite.

#==============================================================================
#
# définition de la page HTML principale
#
DirectoryIndex index.html index.htm "/ERROR/404.php"
#
#==============================================================================
#
# protection de la lecture des répertoires
#
Options -Indexes
#
#==============================================================================
#
# redéfinition des pages d'erreur
#
ErrorDocument 401 "/ERROR/401.php"
ErrorDocument 403 "/ERROR/403.php"
ErrorDocument 404 "/ERROR/404.php"
ErrorDocument 500 "/ERROR/500.php"
#
#==============================================================================
#
# désactivation de la mise en cache
#
<IfModule mod_headers.c>
	<FilesMatch "^*\.(php|html|htm|js|css|cgi|scgi|fcgi)$">
		Header set Cache-Control "no-store, no-cache, must-revalidate, max-age=0"
		Header set Pragma "no-cache"
		Header ser Expires "0"
#		Header unset Cache-Control
#		Header unset Expires
#		Header unset Last-Modified
#		Header unset Pragma
	</FilesMatch>
</IfModule>
#
#==============================================================================
#
# htm et html seront aussi considérés comme du php
#
AddType application/x-httpd-php .php
AddType application/x-httpd-php .htm
AddType application/x-httpd-php .html
#
#==============================================================================
#
# divers
#
AddDefaultCharset "ISO-8859-15"
DefaultLanguage "fr"
#
#==============================================================================
#
# protection des fichiers
#
<FilesMatch "^\.ht*">
Order allow,deny
Deny from all
</FilesMatch> 
#
#
#
<Filesmatch "\.(bat|ico|ini|log|sql|txt)$">
Order allow,deny
Deny from all
</Filesmatch> 
OVH a écrit :
Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, postmaster@monsite.fr and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.
Qu'est-ce que tu as fait pour obtenir cette erreur ?
J'espère que tu n'as pas fait du copier coller !

Mon ".htaccess" était un exemple informationnel de ce que j'ai fait chez moi. A toi de l'adapter.
Les droits d'accès des répertoires devaient être 705 et il y avait un problème interne à l'hébergeur.
Maintenant Options -Indexes fonctionne.

Merci.