开发基于MVC模式的CMS。 我想避免直接访问我的子文件夹和文件 我在根文件夹中有这个.htaccess文件:
php_flag display_errors On
php_value error_reproting 9999
<IfModule mod_rewrite.c>
RewriteEngine on
SetEnv HTTP_MOD_REWRITE On
RewriteBase /lmvc_trunk/
Options -Indexes
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
</IfModule>
页面请求如下:http://mydoamin.com/pages/details/15。这将加载“pages”控制器并调用它的方法“details”并将15作为参数传递(pages_controller-&gt; details(15))
“Options -Indexes”将阻止用户列出例如/ library目录。但是如果我在浏览器中键入http://mydoamin.com/library/Bootstrap.php,它将加载php脚本。我知道如果我将一个带有“全部拒绝”的.htaccess文件添加到一个可以解决这个问题的子文件夹,但是没有比将这个htaccess文件放到我的所有子文件夹更好的解决方案吗?我可以以某种方式阻止从根目录中的htaccess直接访问子文件夹和文件吗?
如果我能将直接文件和文件夹请求重定向到索引/ 404会更好,这样用户甚至不知道是否有名为eg / library的文件夹
我是htacces的新手并重写。任何解决方案?
答案 0 :(得分:0)
将此规则作为第一条规则:
RewriteCond %{THE_REQUEST} \s/+[^/]+/\S+
RewriteRule ^ - [F,L]