Basic認証は安全性に問題があり本格的に使うことは稀と思いますが、簡単に設置できるので簡易的なアクセス管理に便利です。
.htpasswdの作成
SSHなどで設置先のサーバーにログインできるという前提で説明します。
SSHでログインできない場合は、ローカルPCなどで.htpasswd
を作成してアップロードすることになります。注
新規作成
以下はlolipop
というユーザー名で作成するサンプルです。
パスワードを聞かれますので、入力してください。
$ htpasswd -c .htpasswd lolipop
New password:
Re-type new password:
Adding password for user lolipop
作成される.htpasswd
は次のようになります。
$ cat .htpasswd
lolipop:$apr1$hgHnvE.E$NAxrrnRVtg94iwPYHRpZT0
追加
lolipop
というユーザー名を追加するサンプルです。
$ htpasswd lolipop
New password:
Re-type new password:
Adding password for user lolipop
.htaccessの設定
アクセス制限をかけたい場所に.htaccess
を置きます。 /var/www/localhost/htdocs/.htpasswd
は、実際には.htpasswd
が置かれているパスに書き換えてください。
AuthUserFile /var/www/localhost/htdocs/.htpasswd
AuthName "example"
AuthType Basic
require valid-user
.htpasswd
や.htaccess
に直接アクセスされないように次のアクセス制限も追加できます。(/etc/apache2/httpd.conf
などで設定されている場合は不要です。)
<Files ~ "^.(htpasswd|htaccess)$">
deny from all
</Files>
注 ローカルPCにhtpasswd
実行環境がない場合は、.htpasswd作成ツール(サーバー移転に伴いサービス終了しました)などでも作成できます。
関連記事
htaccessでwwwのアリとナシで統一
wwwアリで統一する場合
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule (.*) http://www.example.com/$1 [R=301,L]
wwwナシで統一する場合
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.exa...
Access-Control-Allow-Origin
設置したCGIを違うドメインからでも使えるようにしたい場合は、HTTPヘッダーにAccess-Control-Allow-Originを追加するとできるようになるそうです。
CGI側でヘッダーを追加する場合
次のような感じでHTTPヘッダーを追加します。
print('Access-Control-Allow-Origin: *')
print('Content-Type: t...
Apache2.4でのアクセス制限の書き方
Apache2.4では2.2で使っていたOrder allow,denyなどの記述が変更され、新しい書き方になったみたいです。ということで、その書き方を調べてみました。
アクセス制限の書き方
mod_authz_coreを使ったアクセス制限の書き方
全てのアクセスを許可する
<Directory "/admin">
Require all granted
<...
.htaccessで特定ボットのアクセスを拒否する書き方
最近、「SemrushBot」「Linespider」「BLEXBot」あたりのボットが活発に活動しているようで、Webサーバーに大量のログが残っていました。検索エンジン関係であればボットのアクセスも必要経費と見なせますが、SEO系ボットによるアクセスはサーバーの負荷になるだけなので、余り嬉しくありません。
ということで、特定のボットによるアクセスを拒否したい場合は.htaccessに以下...