本番とテスト、同一ファイルでテスト環境のみBasic認証を有効にするhtaccess
最近はgitを使ったバージョン管理を取り入れて開発する方も多いかと思います。
基本的には本番環境(商用)、テスト環境(検証・開発)と環境がいくつかあっても
同じソースコードを配置するのが理想的だと言われています。
htaccessのアクセス制御は、いよいよリリースが迫る時期に毎回調べてしまっているので
忘れないようメモを残しておきます。
要件は下記の通り。
- 環境構築は完了しているためapacheの設定ではなく、htaccessでアクセス制御する
- 環境ごとにソースコード差分を出したくないので同一ファイルで環境判定後にそれぞれの処理をする
サイトに関しての情報はこちら。
htaccessは下記のように記述します。
#本番環境はBasic認証をはずす order deny,allow deny from all satisfy any SetEnvIf Host "^soudan.hatenablog.jp$" server_pro allow from env=server_pro #Basic認証 AuthUserFile /var/www/html/soudan/.htpasswd AuthGroupFile /dev/null AuthName "Please enter your ID and password" AuthType Basic require valid-user
参考にしたサイト その1
参考にしたサイト その2
q.hatena.ne.jp
参考にしたサイト その3
本番サイトとテストサイトで同一の.htaccessを使い、テストサイトだけBASIC認証をかけたい。 – Ninton G.K.
さらにIP制限がある場合は
satisfy all
に変更して、
allow from 200.XXX.XXX.XXX
といった風に記述を追加したらOKですよ。
htaccessの記法ミスがないかチェックしてくれるツールも存在します。
サーバーに反映しないと検証できないので、
事前にチェックツールを利用するのは必須ですね。
※挙動を保証するものではなく、文法のチェックツールです。
IP制限やBasic認証、環境ごとの挙動などhtaccessではわかりにくいーって方は、
PHPで処理するのも1つの方法です。
IP制限はもちろん、Basic認証もPHPで実現できます。