8

シナリオは次のとおりです。

.htaccessルートを含むウェブサイトファイルを追跡しているGitリポジトリがあります。Gitリポジトリは、ステージングサイトと本番サイトにチェックアウトされます。

問題:ステージングサイトはパスワードで保護する必要があります(htpasswd認証を介して)。これにより.htaccess、ファイルも変更されます。ステージング環境からのコミットまたはプッシュは、.htaccessファイル(ルートディレクトリのパスワード保護を有効にする)がライブWebサイトにもチェックアウトされ、ライブWebサイトにもパスワードを要求することを意味します。

では、どうすればよいでしょうか。追跡を停止する必要があり.htaccessますか?受信後のフックを介して上書きする必要があります.htaccessか(可能ですか?どのように?)?変更せずにディレクトリを保護する他の方法はあります.htaccessか?他の解決策はありますか?

4

4 に答える 4

6

私は自分自身を追跡しない .htaccessことを選びます。

可能なオプション:

  1. 追跡.htaccess-prod.htaccess-stageます(さまざまな構成設定やパスワードなど、より多くの違いがある場合は、1行しかない場合は、おそらく最適なオプションではありません)。次に、何かを更新するときは常に、両方のファイルでそれを行う必要があります。また、2つの環境でファイルが.htaccess変更された場合は、手動でコピーすることを覚えておく必要があります。

  2. ファイル.htaccess-exampleを1つだけ保存し、ステージングエリアとライブエリアの両方にフックを追加します(チェックアウト後および/またはマージ後[1]を参照)。どちらも、変更があった場合は常に.htaccess-exampleローカルとしてコピーします。 .htaccess、ステージングでパスワード保護の行を追加します。

[1]まだ自分で使ったことがないので、ドキュメントを見ると少し混乱しています。ポストレシーブに関しては、私が理解している限り、プルしたときの作業コピーではなく、プッシュしたときにリモートリポジトリで実行されます。

于 2012-11-17T18:54:23.793 に答える
2

Gitの場合(Mercurialとは異なり)、解決策は1つだけです。分岐

ステージングとライブには異なるブランチを使用する必要がありますが、コンテンツに1つの違いがあります:.htaccessデータ。手作業が多く、防弾ではありませんが、それはあなたの選択です

于 2012-11-17T13:46:07.313 に答える
2

箱の外の答えは次のとおりです。Devで.htaccessファイルのカスタムファイル名を設定し、チェックインしないでください。たとえば、.htaccess-devや.htaccess.stagingなどです。

これは、vhosts構成で設定できます。

http://www.electrictoolbox.com/change-htacces-filename-apache/

MAMP Proを使用する場合は、ローカルドメインごとにvhostconfigを設定できます。

于 2014-05-23T02:06:02.900 に答える
-2

展開するために私はcapistranoをお勧めします、それは美しいユーティリティです。

于 2012-11-17T13:35:20.040 に答える