php - codeigniter:使用 htaccess 保护 Controller

标签 php .htaccess codeigniter .htpasswd

我想在我的 Codeigniter 项目中保护 1 个 Controller ,并在根目录中放置以下 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>

当我转到 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/

相关文章:

php - CodeIgniter 在 Html 的每个实例上迭代输出行

php - 显示单独的错误消息

php - CodeIgniter:数据映射器 ORM delete() 一个关系;

php - 如果不使用 mysqli_multi_query,SQL 注入(inject)将无法工作

php - Dockerfile 中 php :8. 0-fpm-alpine 的 OCI8 扩展

.htaccess - 重写规则以仅检测数字

.htaccess - htaccess 重定向 "/?id=(.*)",但仅限于根目录?

php - 如何在网站之间传输javascript数据?

php - SEO 友好的 ajax 驱动的网站

php - .htaccess 不允许访问 wamp 服务器中的项目目录