.htaccessファイルにサーバーベースの条件文を含めることはできますか?

.htaccessファイルにサーバーベースの条件文を含めることはできますか?

開発サーバーとライブサーバーがあり、どちらもApacheでWebサイトを実行しています。私の.htaccessファイルには、複数のmod_rewriteコマンドやその他の重要な項目に加えて、ライブサーバーへの認証アクセス制御機能があります。 (開発サーバーは私のローカルMacにとってそこには必要ありませんね…)

dev .htaccessファイル(Authコマンドをオーバーライド)をコピーできないため、.htaccessをライブサーバーに同期することは困難です。したがって、ライブファイルを手動で編集する必要があります。

.htaccessファイルに条件を追加する方法はありますか?私は次のことを想像しています:

<On Live_Server>
  AuthName "Restricted Area"
  AuthType Basic
  AuthUserFile /home/lmiv/.htpasswds/.htpasswd 
  Require valid-user
</on>

答え1

とても近いです。はい。使用できる<IfDefine>これをブロックします。追加のディレクティブを使用してApacheを起動する必要があります。-DこれはApache設定のどこでも使用できます。たとえば、本番-DLive_Server環境でコマンドラインオプションを追加した場合は、すべての環境の設定でこれを行うことができます。

<IfDefine Live_Server>
  AuthName "Restricted Area"
  AuthType Basic
  AuthUserFile /home/lmiv/.htpasswds/.htpasswd 
  Require valid-user
</IfDefine>

また、反対のタスクを実行し、開発環境で次のように定義し、一致を逆にすることも-DDev_Serverできます。

<IfDefine !Dev_Server>

私は、本番環境の「特別な」構成が少なく、-Dコマンドラインに追加するために本番インスタンスを再起動する必要がない後者を好みます。

関連情報