SVN を使用しているときに、dev をパスワード保護し、ライブをパスワード保護しないようにするにはどうすればよいですか? 質問する

SVN を使用しているときに、dev をパスワード保護し、ライブをパスワード保護しないようにするにはどうすればよいですか? 質問する

ワークフローは次のようになります: 開発は dev.example.com で行われ、変更は SVN にコミットされ、ライブ サイトにエクスポートされます。ライブ サイトは www.example.com にあります。

dev.example.com をパスワードで保護したいのですが、.htaccess を使用して保護すると、ライブ サイトでも同じ .htaccess が使用されるため、パスワードも保護されます。

私たちは Dreamhost の共有ホスティングを使用しており、SSH アクセスはありますが、Apache の構成 .conf ファイルを編集できません。

開発とライブ用に別々の .htaccess ファイルを用意することは望ましくありません。また、更新は .htaccess に対しても行われるため、SVN 内の .htaccess を無視します。

それで私は何をすべきでしょうか?

ベストアンサー1

mod_setenvifサーバー上で有効になっている場合は、.htaccessファイルに以下を追加できます。

SetEnvIfNoCase ^HOST$ .+ unauthenticated
SetEnvIfNoCase ^HOST$ ^dev\.example\.com$ !unauthenticated

AuthType Basic
AuthName "Secured"
AuthUserFile /path/to/.htpasswd
Require valid-user
Order allow,deny
Allow from env=unauthenticated
Satisfy any

これは基本的に、「unauthenticated」という環境変数を設定しますが、HOST (ブラウザによって要求されたホスト) が正確に「dev.example.com」である場合は設定を解除します。ディレクトリ ディレクティブの「satisfy any」は、条件のいずれかが満たされた場合に要求を許可するように Apache に指示します。つまり、「dev.example.com」では環境変数が設定されず、パスワードが必要になります。他のホストでは、変数が設定されるため、Apache は資格情報を要求しません。

おすすめ記事