【发布时间】:2014-03-31 00:26:40
【问题描述】:
我正在开发基于 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->details(15))
“选项-索引”将阻止用户列出例如 /library 目录。但是,如果我在浏览器中输入http://mydoamin.com/library/Bootstrap.php,它将加载 php 脚本。我知道如果我将带有“全部拒绝”的 .htaccess 文件添加到可以解决此问题的子文件夹中,但是没有比将此 htaccess 文件放置到我的所有子文件夹中更好的解决方案吗?我可以以某种方式阻止从根目录中的 htaccess 直接访问子文件夹和文件吗?
如果我可以将直接文件和文件夹请求重定向到 index/404 会更好,这样用户甚至都不知道是否有一个名为 /library 的文件夹
我是 htacces 和重写的新手。有什么解决办法吗?
【问题讨论】:
标签: apache .htaccess mod-rewrite