我有一个处于测试阶段的站点,因此它连接的不是真实数据,而是数据库的本地副本。
我的客户现在需要一个快速链接来检索一些紧急且重要的 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 虚拟主机来设置您的应用程序,一个名为 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'];
});
关于php - 如何使用 .htaccess 在 Laravel 4 中选择环境?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18161993/