У меня проблема. Я использую slim, и у меня есть маршрут для моей главной страницы:
$app->get('/', function() use ($app) { ... 
В одном из моих контроллеров я хочу перенаправить на главную страницу, поэтому я пишу
 $app->response->redirect('/', 303); 
  Но вместо перенаправления на маршрут «/» я перенаправляюсь в корень моего локального сервера, который является http://localhost/ 
Что я делаю не так? Как использовать метод перенаправления?
  Slim позволяет вам называть маршруты, а затем перенаправлять их обратно на основе этого имени, используя urlFor() .  В вашем примере измените свой маршрут на: 
 $app->get('/', function() use ($app) { ... })->name("root"); 
и тогда ваше перенаправление будет:
 $app->response->redirect($app->urlFor('root'), 303); 
Дополнительную информацию см. В справочниках Route в документации Slim.
Из документов Slim3 http://www.slimframework.com/docs/start/upgrade.html
 $app->get('/', function ($req, $res, $args) { return $res->withStatus(302)->withHeader('Location', 'your-new-uri'); }); 
Slim 3
return $ response-> withRedirect ($ url).
дать вашему '/' маршруту имя,
 $app = new \Slim\Slim(); $app->get('/', function () { echo "root page"; })->name('root'); $app->get('/foo', function () use ($app) { $app->redirect($app->urlFor('root') ); }); $app->run(); 
Это должно дать вам правильный URL-адрес для перенаправления
http://docs.slimframework.com/routing/names/ http://docs.slimframework.com/routing/helpers/#redirect
 //Set Default index or home page $app->get('/', function() use ($app) { $app->response->redirect('login.php'); }); 
Для Slim v3.x:
  Используйте $response->withStatus(302)->withHeader('Location', $url);  вместо $app->redirect(); 
В Slim v2.x можно использовать вспомогательную функцию $ app-> redirect (); для запуска запроса перенаправления. В Slim v3.x можно сделать то же самое с использованием класса Response (см. Следующий пример) [1].
  Используйте pathFor() вместо urlFor() : 
urlFor () был переименован в pathFor () и может быть найден в объекте маршрутизатора. Кроме того, pathFor () – это базовый путь [2].
Пример:
 $app->get('/', function ( $request, $response, $args ) use ( $app ) { $url = $this->router->pathFor('loginRoute'); return $response->withStatus(302)->withHeader('Location', $url); }); 
  Примечание: дополнительные параметры могут быть предоставлены путем передачи ассоциативного массива имен параметров и значений в качестве второго аргумента метода pathFor() : $this->router->pathFor('viewPost', ['id' => 1]);  , 
Метод pathFor () маршрутизатора принимает два аргумента:
- Название маршрута
 - Ассоциативный массив заполнителей шаблонов маршрутов и значения замещения [3]
 
Рекомендации:
Я думаю использование ./ вместо / будет работать.
Я думаю, что я столкнулся с аналогичной проблемой, и проблема была в моем файле конфигурации .htaccess . На самом деле это должно быть примерно так:
 RewriteEngine On RewriteBase /api #if your web service is inside a subfolder of your app, # you need to pre-append the relative path to that folder, hope this helps you! RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php [QSA,L]