codeigniter:用htaccess保护控制器

Att*_*web 2 php .htaccess codeigniter .htpasswd

我想保护1个控制器免受我的Codeigniter项目的影响,并在根目录中放置以下htaccess代码:

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>
Run Code Online (Sandbox Code Playgroud)

当我去domain.nl/admin时,我会得到一个提示,要求提供凭据.但是当我点击取消时,它仍然会进入管理页面.我怎样才能解决这个问题?

Din*_*ino 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');
    }
  }
Run Code Online (Sandbox Code Playgroud)

  • 通过重置AUTH或其他东西,还有一种简单的注销方式吗?或者它只能用于会话吗? (2认同)