1

私のシナリオに基づいて SetEnvIf を使用して環境変数を機能させる方法を理解するのに苦労しています。

私の結果は、環境変数に基づいて起動するには、次のリダイレクトが必要であるということです。このロジックを使用する必要がある他のケースもあります。

私は以下を持っているので、リダイレクトは本番環境でのみ発生します

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{ENV:environment} production
    RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

以下を設定できることを望んでいましたが、理解できません。

SetEnvIf environment ^(.*)$ environment=production #set it to production, if it is not already set?
SetEnvIf Host ^staging. environment=staging
SetEnvIf Host .dev$ environment=wamp

理想的には、私の疑似コードは次のようになります

SetEnvIf environment is not set, set to production
SetEnvElse host starts with staging, set to staging
SetEnvElse host ends with dev, set to wamp

それから私のPHPで私は持っています

<?php

if( getenv('environment') ){
    exit(getenv('environment'));
}
else {
    exit("environment not found");
}

そして、私の出力は間違いなく

environment not found

アクセスしていますowen.jekyll-test.dev

私が間違っていることについて誰かが私を指摘できますか?

4

1 に答える 1