Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

CodeIgniter and htaccess - Protect a specific controller and its methods via AuthType?

I have an admin controller which has some methods that I want to protect.

http://blabla.com/admin/

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

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

I don't need a full blown authentication system for this site, so I'd prefer to just utilize htaccess and AuthType for any /admin/ URLs.

My current .htaccess is a basic CI one.

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] 

How do I do this?

[Added] I know how to use htaccess and htpasswd. My question is how to protect a CI controller which is not really a directory (/admin). I tried using the Location directive with no success. Here is that 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]

That throws a 500 Server Error.

I believe the Location directive can't be in an htaccess file, so I also tried it inside this server's httpd.conf for this VirtualHost. Doesn't throw an error that way, but doesn't work either.

like image 853
k00k Avatar asked Feb 11 '26 22:02

k00k


1 Answers

I got this to work by following the advice in this post:

http://ellislab.com/forums/viewthread/141775/

like image 123
k00k Avatar answered Feb 15 '26 12:02

k00k