我在heroku上为shopify商店建立了一个应用程序,这是我的index.php代码 我想在不同的URL上运行不同的文件,它使用\ based url ata那个时间index.twig文件运行但是当我做一些像这样的代码时
如果我们这样编码,那么它将运行index.twig但是
$app->get('/', function() use($app) {
$st = $app['pdo']->prepare('SELECT name FROM test_table');
$st->execute();
echo 'hi';
$names = array();
while ($row = $st->fetch(PDO::FETCH_ASSOC)) {
$app['monolog ']->addDebug('Row ' . $row['name']);
$names[] = $row;
}
return $app['twig']->render('index.twig', array(
'names' => $names
));
});
但是当我们这样做时,会发出错误信息
$app->get('/db/', function() use($app) {
$st = $app['pdo']->prepare('SELECT name FROM test_table');
$st->execute();
echo 'hi';
$names = array();
while ($row = $st->fetch(PDO::FETCH_ASSOC)) {
$app['monolog ']->addDebug('Row ' . $row['name']);
$names[] = $row;
}
return $app['twig']->render('database.twig', array(
'names' => $names
));
});
它会给出错误 在此服务器上找不到请求的URL / db /。
而不是运行database.twig
请为此提供帮助
答案 0 :(得分:0)
看起来它不在Shopify范围内。
您似乎使用一些框架来构建应用程序。 Silex可能吗? 当您请求http://yourdomain.com/db/时,它实际上会尝试查找此URL,但是没有这样的路径。这就是你得到404的原因。
许多现代框架都有一个前端控制器index.php,它决定了用于管理请求的其他控制器。实际上,所有请求都应该转到这个index.php脚本。
所以你必须拔出http://yourdomain.com/index.php/db/它应该可以解决。但它包含此脚本名称段,使URL看起来不整洁。您可以使用.htaccess删除它。如果我的假设是正确的并且您确实在使用Silex,请考虑这一点:http://silex.sensiolabs.org/doc/web_servers.html