我知道这是一个已经有答案的问题,但它们都没有对我有用。出于某种原因,我无法使用:
$app->redirect($app->urlFor('home'));
OR
$app->response->redirect($app->urlFor('home'));
路线' home'已定义,但由于某种原因,Slim只返回一个空的200响应。有什么我做错了吗?
编辑: 完整代码:
$app->get('/gensession', function() use ($app){
// set up session; this works
// if I echo anything here, it'll output on the page
$app->redirect('/'); // This doesn't work, neither does urlFor(<name>)
return;
});
这只是让我在/ gensession的空白页面。 Slim返回200(OK),没有别的。没有错误。没有输出。
的.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
编辑2: $ app-&gt;响应的输出为:
object(Slim\Http\Response)#113 (5) { ["status":protected]=> int(302) ["headers"]=> object(Slim\Http\Headers)#115 (1) { ["data":protected]=> array(2) { ["Content-Type"]=> string(9) "text/html" ["Location"]=> string(1) "/" } } ["cookies"]=> object(Slim\Http\Cookies)#116 (2) { ["defaults":protected]=> array(6) { ["value"]=> string(0) "" ["domain"]=> NULL ["path"]=> NULL ["expires"]=> NULL ["secure"]=> bool(false) ["httponly"]=> bool(false) } ["data":protected]=> array(0) { } } ["body":protected]=> string(0) "" ["length":protected]=> int(0) }
注意:["status":protected]=> int(302)
和["Location"]=> string(1) "/"
因此,如果响应对象明确包含这些属性,为什么不将它们返回给客户端?
答案 0 :(得分:0)
实际答案:
我不知道除了更改会话保存路径之外我做了什么,但它现在有效。我决定接受唯一的答案,因为它可能对其他人有所帮助。非常感谢你的所有建议。 - 疯狂的雷德
答案 1 :(得分:-1)
你应该像这样返回重定向:
$app->get('/gensession', function() use ($app){
return $app->redirect('/');
});