我想在我的Codeigniter项目中使用以下htaccess代码保护1个控制器:
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]
<Files admin>
AuthName "admin"
AuthType Basic
AuthUserFile /home/domain/domains/domain.nl/.htpasswd/public_html/.htpasswd
require valid-user
</Files>
当我去domain.nl/admin时,我会收到提示,要求提供凭据。但是当我点击取消时,它仍然会进入管理页面。我该如何解决这个问题?
答案 0 :(得分:7)
另一种简单的方法。将它放在管理控制器的顶部。
public function __construct() {
parent::__construct();
if (!isset($_SERVER['PHP_AUTH_USER']) || $_SERVER['PHP_AUTH_USER'] != 'username' || $_SERVER['PHP_AUTH_PW'] != 'password') {
header('WWW-Authenticate: Basic realm="MyProject"');
header('HTTP/1.0 401 Unauthorized');
die('Access Denied');
}
}