我想用mvc結構製作網站。我有這樣的:。htaccess在mvc架構中保護管理員目錄
WWW/
博客/
- 應用程序/
- 管理/
- 控制器/
- 模型/
- 視圖/
- 配置/
- 前/
- 控制器/
- 模型/
- 視圖/
- 管理/
- 資產/
- 圖像/
- 庫/
- 應用程序/
圖集/
我在根目錄的第一htaccess的網站(www /)爲Gzip壓縮和東西。 我有我的博客第二的.htaccess(通過www /博客/)我非常基本的重定向系統:
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 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 /博客/的.htaccess:
<Directory admin>
AuthUserFile "/home/foobar/www/blog/.htpasswd"
AuthGroupFile /dev/null
AuthName "Admin"
AuthType Basic
Require valid-user
</Directory>
謝謝納迪爾的回答。在這種MVC架構中,是否有比使用htaccess在密碼保護/保護admin文件夾更好的方法? – Syl
Syl,htaccess密碼保護使用基本或SHA-1加密。這兩種加密方法都很弱並且易於解密。建議通過SSL連接使用htaccess密碼保護。保護管理區域的另一個選項是基於用戶名和密碼實現自定義安全登錄方案 –
感謝您提供此信息Nadir – Syl