やりたかった事 =>
アプリには管理画面があり、/admin以下のURLにはBasic認証を掛けたい。
URLが単純にディレクトリ構造に乗っ取っているのなら、hetemlの管理画面から掛けられるアクセス制限で事が足りるのですが、CodeIgniterはすべてのリクエストをルートのindex.php経由で処理するため、LocationディレクティブでのBasic認証記述が必要です。
そこでアプリケーションルートの.htaccessに以下のような記述を追加。
<Location admin="admin">
AuthUserFile /path/to/htppasswd/.htpasswd
AuthGroupFile /dev/null
AuthName "Admin Area"
AuthType Basic
require valid-user
</Location>
これで一件落着かと思いきや、アクセスしてみると500エラー画面が表示されました。この件について、hetemlのドキュメントは見当たらなかったのですが、結局Locationディレクティブを外してBasic認証を掛けると正常に動くことと、<Location /></Location>>だけの記述でもエラーになる事からhetemlではLocationディレクティブの使用を許可していないと思われます。
私のアプリでは/adminだけを別アプリ、別ディレクトリに格納して、そこにBasic認証を掛けることで対応しました。
0 件のコメント:
コメントを投稿