我正在开发一个工具,但我陷入了困境:我想为每个目录定义一组规则,基本上我只希望“公共(public)”文件夹可用,并拒绝访问其他文件夹。
我的目录结构是
uapi(root)/
Application
Config
Public/
Index.php
Storage
.htaccess
这是 .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>
最佳答案
如这个doc page说,你不能使用 <Directory>
htaccess 内的指令,但仅限于服务器配置文件内。
无论如何,这对您来说不是问题:您可以存储一个 .htaccess
每个目录中的文件,例如。创建这些文件:
公共(public)/.htaccess
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>
/Config/.htaccess
Order Deny, Allow
Deny from all
/Application/.htaccess
Order Deny, Allow
Deny from all
/存储/.htaccess
Order Deny, Allow
Deny from all
关于Apache - 拒绝访问除公共(public)目录之外的所有目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18209489/