以前にも同様の質問があったことは知っていますが、自分の状況に対する具体的な答えは見つかりませんでした。
私はExpressionEngineサイトを複数の環境(ローカル、開発、本番)で実行しており、それらの環境ごとに異なる.htaccessルールが必要です。
すべての環境
- index.phpを削除します
- 404ファイルを設定する
- 301リダイレクトを設定
発達
- .htpasswdによるパスワード保護
- HTTPSプロトコルを強制する
- X-Robots-Tagを使用して検索エンジンのインデックス作成を防止する
製造
- HTTPSプロトコルを強制する
- www以外のサブドメインをwwwにリダイレクトする
ローカル
- 独自のルールはありません。
モジュールごとに特定の環境を設定する方法の例をたくさん見てきました。RewriteCond %{REQUEST_HOST} ^dev.myurl.com
mod_rewriteモジュールの場合と同様に、 .htpasswd要件の場合はこのようなトリックが必要です。
しかし、私が本当に望んでいるのは、グローバル環境変数を設定し、それらの変数を環境ごとの.htaccessファイルで再利用する方法です。例としてpseudo-javascriptを使用するには、次のようにします。
var local = 'mysite.local';
var development = 'dev.mysite.com';
var production = 'www.mysite.com';
// Global .htaccess rules
if(environment == local){
// Local environment .htaccess rules
}
if(environment == development){
// Development environment .htaccess rules
}
if(environment == production){
//Production envirotnment .htaccess rules
}
このようにして、すべての環境固有のルールがすべてグループ化され、非常にクリーンなファイルが作成されます。環境が変更された場合に変更する必要がある変数は1つだけです。
Apacheの構成ファイルの設定を変更するための参照をいくつか見てきましたが、サードパーティのホストを扱っている場合は、明らかにそれは実行可能なオプションではありません。
それで、この空のパイの希望的な考えですか、それともそれを行うことができますか?