【发布时间】:2017-07-08 13:38:10
【问题描述】:
我正在尝试创建一个具有 mvc 结构的站点。我有这个:
-
www/
-
博客/
- 应用/
- 管理员/
- 控制器/
- 型号/
- 查看/
- 配置/
- 前/
- 控制器/
- 型号/
- 查看/
- 管理员/
- 资产/
- 图片/
- 库/
- 应用/
作品集/
-
我在根目录 (www/) 有一个用于 Gzip 压缩和其他内容的第一个 .htaccess。 我的博客(在 www/blog/ 中)有第二个 .htaccess 和我非常基本的重定向系统:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
#QSA permet de garder les paramètres GET et les ajouter à la suite
RewriteRule (.*) index.php?p=$1 [QSA]
www/blog/ 中的文件 index.php 解析 url 并使用正确的控制器,如下所示:
//****************************************************
include_once(APP_f.controller/controller.class.php');
$controlF = new ControleurF();
include_once(APP_b.'controleur/controleur.class.php');
$controlB = new ControleurB();
if (isset($_GET['p'])&&(substr($_GET['p'],0,4)== 'admin')) {
//on est dans l'admin
$lapage=explode('/',$_GET['p']);
if (!empty($lapage[1])) {$pp = $lapage[1];} else {$pp="index";}
if (!isset($pp) OR $pp == 'index')
{
$ctrl = "home"; $p = $ctrl;
} else {
$params = explode('/',$pp);
$ctrl = $params[0]; $p = $ctrl;
if (isset($params[1])) {
if ($params[1]<>"") {$p = $params[1];}
}
}
$c=$controlB->load($ctrl);
include_once($c);
}else{
//on est en front
if (!isset($_GET['p']) OR $_GET['p'] == 'index')
{
$ctrl = "home"; $p = $ctrl;
} else {
$params = explode('/',$_GET['p']);
$ctrl = $params[0]; $p = $ctrl;
if (isset($params[1])) {
if ($params[1]<>"") {$p = $params[1];}
}
}
$c=$controlF->load($ctrl);
include_once($c);
}
//****************************************************
一切正常,但我无法理解如何使用 .htaccess/.htpasswd 保护我的管理文件夹 有没有办法在 www/blog/.htaccess 中做类似的事情:
<Directory admin>
AuthUserFile "/home/foobar/www/blog/.htpasswd"
AuthGroupFile /dev/null
AuthName "Admin"
AuthType Basic
Require valid-user
</Directory>
【问题讨论】:
标签: .htaccess security model-view-controller administration