好的,我已经阅读了Slim PHP的文档,并阅读了不少教程,应用程序正在顺利进行中。然而,我正在努力掌握一些事情,比如自定义HTTP响应代码。我已经设法得到了以下:
$app->notfound('template.file', array(
'data' => 'passed'
));
这似乎工作得很好(因为是直接在Slim中的方法),但我并没有试图控制403
响应之类的事情。我已经像往常一样控制了不允许使用Apache的情况,但我想知道Slim是否有办法提供自定义的not Permissioned页面?或者因为我在Apache级别屏蔽了它,Slim会不会注意到?
我确实读到我可以手动停止某些路线?我应该这样做吗?例如,我不希望人们访问我的JS目录,所以:
$app->group('/js', function () use($app) {
$app->get('/', functin () use($app) {
$app->halt(403, "You shall not pass!");
});
});
我之所以分组,是因为我想要访问实际的脚本,而不是目录浏览。
以前有人见过这个吗?你有什么建议?还是我对一些简单的事情想得太多了。。。。
您可以简单地将用户重定向到另一个打印自定义模板的路由。示例:
require 'vendor/autoload.php';
session_start();
$app = new 'Slim'Slim();
$app->group('/js', function () use($app) {
$app->get('/', function () use($app) {
$app->flash('httpStatusCode', '403');
$app->redirectTo('NotAuthorized');
});
});
$app->get('/notAuthorized', function () use($app) {
echo 'You''re here because you''re Balrog!';
echo 'Http Status Code: ' . $_SESSION['slim.flash']['httpStatusCode'];
})->name('NotAuthorized');
$app->run();