httpresponse — Тонкие PHP-страницы с пользовательскими ответами http

Хорошо, я прочитал документы на Тонкий PHP и прочитайте немало учебных пособий, и у вас есть подходящее приложение. Однако я пытаюсь справиться с такими вещами, как настройка кодов ответов HTTP. Мне удалось получить следующее:

$app->notfound('template.file', array(
'data' => 'passed'
));

Это, кажется, работает хорошо (как и должно быть является Метод непосредственно в Slim), но я не пытаюсь контролировать такие вещи, как 403 ответ. Я контролировал не разрешенное использование Apache, как обычно, но мне интересно, есть ли способ с Slim, чтобы я мог обслуживать обычай Не разрешено страница? Или потому, что я заблокировал его на уровне Apache, Slim даже не заметит?

Я прочитал, что я могу вручную стой определенные маршруты? Это то, как я должен это сделать? Например, я не хочу, чтобы люди обращались к моему каталогу JS, поэтому:

$app->group('/js', function () use($app) {
$app->get('/', functin () use($app) {
$app->halt(403, "You shall not pass!");
});
});

Моя причина для группировка это будет потому, что я хочу получить доступ к моим настоящим сценариям, а не к просмотру каталогов.

Кто-нибудь сталкивался с этим раньше? Что ты предлагаешь? Или я полностью обдумал что-то простое …

1

Решение

Вы можете просто перенаправить пользователя на другой маршрут, где вы печатаете свой собственный шаблон. Пример:

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();
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]