我想通过在根目录中放置以下htaccess代码来保护1个 Controller 免受Codeigniter项目的侵害:

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时,系统会提示我要求提供凭据。但是,当我单击“取消”时,它仍会进入管理页面。我怎样才能解决这个问题?

最佳答案

另一个简单的方法。将其放在您的管理 Controller 顶部。

  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');
    }
  }

关于php - codeigniter:使用htaccess保护 Controller ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22475981/

10-13 02:34