CodeIgniter和htaccess - 通过AuthType保护特定的控制器及其方法?

时间:2010-07-29 20:08:23

标签: authentication .htaccess codeigniter

我有一个管理员控制器,它有一些我想要保护的方法。

http://blabla.com/admin/

http://blabla.com/admin/edit_coupon/

http://blabla.com/admin/edit_photo/

我不需要为此网站提供完整的身份验证系统,因此我更倾向于对任何/ admin / URL使用htaccess和AuthType。

我目前的.htaccess是一个基本的CI。

RewriteEngine on
RewriteRule ^$ /index.php [L]
RewriteCond $1 !^(index\.php|uploads|images|css|js|videos|code|robots\.txt|favic
on\.ico)
RewriteRule ^(.*)$ /index.php/$1 [L] 

我该怎么做?

[补充] 我知道如何使用htaccess和htpasswd。我的问题是如何保护不是真正目录的CI控制器(/ admin)。我尝试使用Location指令但没有成功。这是htaccess:

<Location /admin>  
 AuthUserFile /var/www/vhosts/blabla.com/httpdocs/.htpasswd
 AuthType Basic
 AuthName "Admin"
 Require valid-user
</Location>

RewriteEngine on
RewriteRule ^$ /index.php [L]
RewriteCond $1 !^(index\.php|uploads|images|css|js|videos|code|robots\.txt|favicon\.ico)
RewriteRule ^(.*)$ /index.php/$1 [L]

抛出500服务器错误。

我认为Location指令不能在htaccess文件中,所以我也在这个服务器的httpd.conf中为这个VirtualHost尝试过。不会以这种方式抛出错误,但也不起作用。

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:-1)

http://httpd.apache.org/docs/2.0/howto/auth.html

您需要使用名称密码创建.htpasswd文件,并在.htaccess文件中设置规则,该文件要求有效用户使用受保护位置。