.htaccessファイルを使いBasic認証をかけてWEBシステム開発やサイト制作を行うことはよくわると思いますが、公開時には忘れずにBasic認証の記述を外す必要があります。
Basic認証を外すことはたいした作業ではないので、何とも思わない方が多いかと思いますが、今回は、開発(テスト)環境のホストでのみBasic認証をかけて本番環境のホストや特定のホストではBasic認証を外す方法を書いていきます。
一般的なBasic認証
# Basic認証
AuthUserFile "/home/xxxxx/example.com/htpasswd/.htpasswd"
AuthName "Member Site"
AuthType BASIC
require valid-user
開発環境のみBasic認証
Order Deny,Allow
Deny from all
# デフォルトの All ではなく Any を指定します
# Any にしないと Basic認証を通過してもホストが許可されていないため表示出来ません
Satisfy Any
# マッチしたホストを許可する
SetEnvIf HOST "^(analyzegear\.co\.jp|www\.example\.com|localhost)$" allowedHost
Allow from env=allowedHost
# ここからいつものBasic認証
AuthUserFile "/home/xxxxx/example.com/htpasswd/.htpasswd"
AuthName "Member Site"
AuthType BASIC
require valid-user
SetEnvIf の行に本番環境のホストやBasic認証をかけたくないホストを指定します。また Satisfy のところで Any(許可ホストかユーザ認証どちらか満たせば通過)にしないとBasic認証をクリアしてもサイトを表示出来ないのでご注意ください。
上記記述を追加しておくと開発(テスト)環境と本番環境で同じ .htaccess ファイルで管理できるので運用が少し楽になると思います。
動作環境情報
エックスサーバー(x10)
コメント