3

テスト段階にあるサイトがあるため、実際のデータではなく、データベースのローカル コピーに接続します。

私の顧客は、緊急で重要な PDF レポートを取得するための高速リンクを必要としているため、「実際のデータ」にリンクする別のバージョンのサイトをセットアップする必要があります。

データベース接続が異なる 2 つの環境 (「ローカル」と「リアル」) を作成できます。また、URL を介して環境を選択できるようにしたいと思います (セキュリティの観点からはあまり良くないことはわかっていますが、これは当然です)。

だから私は使いたい:

my.ip.address/mysiteテストデータベースを使用するには

my.ip.address/mysite/real実際のデータベースを使用するには、「実際のフォルダー」なしで URL にリダイレクトします。

F.ex.:/mysite/real/adminリダイレクトする必要/mysite/adminがありますが、Laravel 4 の「実際の」環境を選択します。

  1. Laravel 4のフォルダもパターンマッチすることは可能ですか、それともドメインに対してのみ可能ですか? 言い換えれば、これは機能しますか?

    $env = $app->detectEnvironment(array(
        'test' => array('*/mysite/*'),
        'real' => array('*/mysite/real/*'),
    ));
    
  2. もしそうなら、.htaccess ルールの書き方がわかりません。

    RewriteRule ^/real(.*)$ $1
    

しかし、それはうまくいきません。

4

2 に答える 2

5

Laravel の内部環境の処理がフォルダーで機能するかどうかはわかりませんが、サブドメインで機能することは間違いありません。test.example.local1 つは、もう 1つは という名前の 2 つの Apache 仮想ホストを使用してアプリをセットアップしreal.example.local、Laravel で環境オプションを次のように設定できます。

$env = $app->detectEnvironment(array(
    'test' => array('test.example.local'),
    'real' => array('real.example.local'),
));

.htaccess を使用する 2 番目のオプションがあります: .htaccess でこれを設定できます...

SetEnv LARAVEL_ENVIRONMENT test
SetEnv LARAVEL_ENVIRONMENT real

次に、Laravel で次のように環境を設定できます。

$env = $app->detectEnvironment(function()
{
    return $_SERVER['LARAVEL_ENVIRONMENT'];
});
于 2013-08-10T12:54:07.873 に答える
0

別のオプション:

以下のコードを bootstrap/start.php に追加します。

putenv('LARAVEL_ENV=production');

$env = $app->detectEnvironment( function()
{
    return getenv('LARAVEL_ENV') ?: 'staging';
});

注: このファイルに「detectEnvironment」が既に記載されている場合は、それを置き換えます。

このアプローチでは、すべての環境が本番環境になることに注意してください。これを克服するには、環境変数を .htaccess ファイルに設定します

構文:SetEnv VAR_NAME "var_value"

SetEnv LARAVEL_ENV production

これが役に立てば幸いです。

于 2015-10-30T08:28:08.220 に答える