"Apache" Refuser l'accès à tous les répertoires à l'exception des
Je suis en train d'élaborer un outil et je suis coincé à ce point: je veux définir un ensemble de règles pour chaque répertoire, fondamentalement, je veux seulement "Public" dossier disponible, et de refuser l'accès à d'autres dossiers.
Mon directoy structure est
uapi(root)/
Application
Config
Public/
Index.php
Storage
.htaccess
et c'est ici .fichier htaccess
<Directory /Public>
Order Deny, Allow
Allow from all
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ Index.php/$1 [L]
</IfModule>
</Directory>
<Directory /Config>
Order Deny, Allow
Deny from all
</Directory>
<Directory /Application>
Order Deny, Allow
Deny from all
</Directory>
<Directory /Storage>
Order Deny, Allow
Deny from all
</Directory>
Peut-être essayez de supprimer/en commentant la
J'ai regardé dans l'accès.journal et son kepps en disant <Directory pas autorisés ici
en règle générale, si vous avez le contrôle du serveur et ne sont pas sur l'hébergement mutualisé, de mettre ce genre de choses dans la configuration du serveur (httpd.conf) est mieux, plus rapide qu'apache n'a pas besoin de rechercher et d'analyser .htaccess à chaque demande. Si vous êtes en hébergement mutualisé vous êtes coincé avec le .htaccess méthode (dans la plupart des cas)
Pourquoi pas un seul .fichier htaccess à la racine "Deny from all" Et un .htaccess dans /dossier Public avec "Allow from all".fichier htaccess dans le dossier Public doit remplacer la .fichier htaccess à la racine? Pour éviter d'avoir un .htaccess dans chaque dossier /Application /Config, etc.
Rewrite...
directives, si ça va marcher, le problème est là.J'ai regardé dans l'accès.journal et son kepps en disant <Directory pas autorisés ici
en règle générale, si vous avez le contrôle du serveur et ne sont pas sur l'hébergement mutualisé, de mettre ce genre de choses dans la configuration du serveur (httpd.conf) est mieux, plus rapide qu'apache n'a pas besoin de rechercher et d'analyser .htaccess à chaque demande. Si vous êtes en hébergement mutualisé vous êtes coincé avec le .htaccess méthode (dans la plupart des cas)
Pourquoi pas un seul .fichier htaccess à la racine "Deny from all" Et un .htaccess dans /dossier Public avec "Allow from all".fichier htaccess dans le dossier Public doit remplacer la .fichier htaccess à la racine? Pour éviter d'avoir un .htaccess dans chaque dossier /Application /Config, etc.
OriginalL'auteur Silvio Marijic | 2013-08-13
Vous devez vous connecter pour publier un commentaire.
Que ce page de doc dit, vous ne pouvez pas utiliser le
<Directory>
directive à l'intérieur htaccess, mais seulement à l'intérieur du serveur de fichiers de conf.Ce n'est pas un problème dans votre cas, de toute façon: vous pouvez stocker un
.htaccess
fichier à l'intérieur de chaque répertoire, par exemple. pour créer ces fichiers:Public/.htaccess
/Config/.htaccess
/Application/.htaccess
/Storage/.htaccess
Oui, vous pouvez mettre toutes les directives que vous avez écrit à l'intérieur d'un virtualhost config, ou le principal fichier de configuration d'Apache. Voir aussi: httpd.apache.org/docs/2.2/mod/core.html#virtualhost .
Downvote? Sérieusement?
OriginalL'auteur Paolo Stefan
Vous pouvez faire tout ce que l'utilisation de mod_rewrite lui-même à partir de votre principal
DOCUMENT_ROOT/.htaccess
fichier. Utilisez ce code:Ce code va jeter Interdit d'erreur pour toutes les demandes de
/Storage/*
ou/Application/*
mais laissez/Public/*
être traitées par/Public/index.php
.OriginalL'auteur anubhava