【问题标题】:How to select environment in Laravel 4 using .htaccess?如何使用 .htaccess 在 Laravel 4 中选择环境?
【发布时间】:2015-10-30 17:16:18
【问题描述】:

我有一个处于测试阶段的站点,因此它连接的不是真实数据,而是数据库的本地副本。

我的客户现在需要一个快速链接来检索一些紧急且重要的 pdf 报告,因此我需要设置另一个版本的网站来链接到“真实数据”。

我可以创建两个具有不同数据库连接的环境(“本地”和“真实”),并且我想提供通过 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
    

但它不会起作用。

【问题讨论】:

    标签: php .htaccess mod-rewrite laravel laravel-4


    【解决方案1】:

    我不确定 Laravel 的内部环境处理是否适用于文件夹,但它肯定适用于子域。 您可以选择使用两个 Apache 虚拟主机设置您的应用程序,一个名为 test.example.local,一个名为 real.example.local,然后在 Laravel 中设置环境选项,如下所示:

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

    还有一个使用 .htaccess 的选项: 您可以在 .htaccess 中设置它...

    SetEnv LARAVEL_ENVIRONMENT test
    SetEnv LARAVEL_ENVIRONMENT real
    

    然后你可以像这样在 Laravel 中设置你的环境:

    $env = $app->detectEnvironment(function()
    {
        return $_SERVER['LARAVEL_ENVIRONMENT'];
    });
    

    【讨论】:

      【解决方案2】:

      另一种选择:

      在 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
      

      希望这有帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-07-29
        • 2013-02-02
        • 2013-11-13
        • 2014-01-07
        • 2014-08-18
        • 2014-02-21
        • 2013-01-09
        • 2014-04-06
        相关资源
        最近更新 更多