Webサイトのアクセス制限【CakePHP 2.x .htaccess】
サイトの開発段階では関係者以外のアクセスを制限します.
その方法を簡単にメモしました.
- Apache Configファイル設定
# vi /etc/httpd/conf/httpd.conf
.htaccessを有効にします.
AllowOverride None
↓
AllowOverride All
AllowOverrideをNoneにしてあると、今からアクセス制限を行う.htaccessファイルが完全に無視されてしまいます.
これはCakePHPの初期設定でAllにされているかと思います.
その後、設定ファイルを再ロードにより有効化します.
# /etc/rc.d/init.d/httpd reload
- ログインユーザ設定
ログインユーザの登録
# htpasswd -b -c /etc/httpd.conf/.htpasswd [ユーザ名] [パスワード]
ここでは、
ユーザ名:hoge
パスワード:hogehoge
とします.
オプション
- c:新しいパスワードファイルの作成
- b:パスワードを、対話式入力ではなくて、コマンドライン引数として指定
ユーザ名が登録されているかを確認します
# cat /etc/httpd/conf/.htpasswd
- パスワード制限設定
ここでは、/var/www/html/cakeディレクトリ以下のファイルに制限を加えていく場合を考えます.
/var/www/html/cakeディレクトリ内の.htaccessファイルを書き換えます.
変更前
<IfModule mod_rewirte.c> RewirteEngine on RewriteRule ^$ app/webroot/ [L] RewriteRule (.*) app/webroot/$1 [L] </IfModule>
変更後
AuthuserFile /etc/httpd/conf/.htpasswd AuthGroupFile /dev/null AuthName “secret page” AuthType Basic require user hoge (先ほど登録したユーザ名) <IfModule mod_rewirte.c> RewirteEngine on RewriteRule ^$ app/webroot/ [L] RewriteRule (.*) app/webroot/$1 [L] </IfModule>
以上になります.