現役プログラマのWordPressカスタマイズ相談

WordPress(ワードプレス)のお悩み、うまくいかなくてお困りなこと、不具合調査、新規制作依頼まで、ウェブアプリケーションエンジニアがあなたをサポートします。

本番とテスト、同一ファイルでテスト環境のみBasic認証を有効にするhtaccess

f:id:jsaz:20170808175340j:plain:w460

最近は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

www.tam-tam.co.jp


参考にしたサイト その2
q.hatena.ne.jp


参考にしたサイト その3
本番サイトとテストサイトで同一の.htaccessを使い、テストサイトだけBASIC認証をかけたい。 – Ninton G.K.




さらにIP制限がある場合は

satisfy all

に変更して、

allow from 200.XXX.XXX.XXX

といった風に記述を追加したらOKですよ。



htaccessの記法ミスがないかチェックしてくれるツールも存在します。


www.htaccesscheck.com

htaccess.mwl.be



サーバーに反映しないと検証できないので、
事前にチェックツールを利用するのは必須ですね。

※挙動を保証するものではなく、文法のチェックツールです。



IP制限やBasic認証、環境ごとの挙動などhtaccessではわかりにくいーって方は、
PHPで処理するのも1つの方法です。
IP制限はもちろん、Basic認証PHPで実現できます。


qiita.com



CakePHPやLaravelなどのPHPフレームワークには
ライブラリなどで簡単に導入することもできます。