微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 如何使用.htaccess在Laravel 4中选择环境?

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

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

我可以使用不同的数据库连接创建两个环境(“本地”和“实际”),我想通过URL选择环境(我知道从安全的角度来看它不是很漂亮,但我们需要这是理所当然的).

所以我想用:

my.ip.address / mysite使用测试数据库

my.ip.address / mysite / real使用真正的数据库,重定向到没有“真实文件夹”的URL.

F.ex.:/ mysite / real / admin应重定向到/ mysite / admin,但在Laravel 4上选择“真实”环境.

>是否可以对Laravel 4中的文件夹进行模式匹配,或者只对域进行模式匹配?换句话说,这有用吗?

$env = $app->detectEnvironment(array(
    'test' => array('*/mysite/*'),
    'real' => array('*/mysite/real/*'),
));

>如果是这样,我就无法弄清楚如何编写.htaccess规则,我试过了

RewriteRule ^/real(.*)$$1

但它不会起作用.

解决方法:

我不确定Laravel的内部环境处理是否适用于文件夹,但它肯定适用于子域.
您可以选择使用两个Apache vhost设置应用程序,一个名为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'];
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐