Laravel,如何重定向为301和302

时间:2013-11-13 21:24:28

标签: laravel laravel-4 http-status-codes

我找不到Laravel docs中重定向为301/302的信息。

在我的routes.php文件中,我使用:

Route::get('foo', function(){ 
    return Redirect::to('/bar'); 
});

默认情况下这是301还是302?有没有办法手动设置它?知道为什么会从文档中省略这个吗?

6 个答案:

答案 0 :(得分:77)

每当您不确定时,您可以查看Laravel的API文档和源代码。 Redirector class$status = 302定义为默认值。

您可以使用to()方法定义状态代码:

Route::get('foo', function(){ 
    return Redirect::to('/bar', 301); 
});

答案 1 :(得分:13)

我更新了Laravel 5的答案! 现在,您可以在文档redirect helper上找到:

return redirect('/home');

return redirect()->route('route.name');

像往常一样......每当你不确定时,你可以看一下带有源代码的Laravel API documentationRedirector class将$ status = 302定义为默认值(302是临时重定向)。

如果您希望拥有永久网址重定向(HTTP response status code 301 Moved Permanently),则可以使用redirect() function定义状态代码:

Route::get('foo', function(){ 
    return redirect('/bar', 301); 
});

答案 2 :(得分:4)

martinstoeckli的回答对静态网址有好处,但对于动态网址,您可以使用以下内容。

对于动态网址

Route::get('foo/{id}', function($id){ 
    return Redirect::to($id, 301); 
});

直播示例(我的用例)

Route::get('ifsc-code-of-{bank}', function($bank){ 
    return Redirect::to($bank, 301); 
});

这将重定向 http://swiftifsccode.com/ifsc-code-of-sbihttp://swiftifsccode.com/sbi

再举一个例子

Route::get('amp/ifsc-code-of-{bank}', function($bank){ 
    return Redirect::to('amp/'.$bank, 301); 
});

这会将http://amp/swiftifsccode.com/ifsc-code-of-sbi重定向到http://amp/swiftifsccode.com/sbi

答案 3 :(得分:2)

您可以这样定义直接重定向路由规则:

Route::redirect('foo', '/bar', 301);

答案 4 :(得分:1)

Laravel 301和302使用redirect()和route()进行重定向

301(永久):

return redirect(route('events.show', $slug), 301);

302(临时):

默认情况下,Route :: redirect返回302状态代码。

return redirect()->route('events.show', $slug);

Laravel官方文档,“重定向路线”:https://laravel.com/docs/5.8/routing#redirect-routes

答案 5 :(得分:0)

从Laravel 5.8开始,您可以指定Route::redirect

Route::redirect('/here', '/there');

默认情况下,将使用302 HTTP状态代码进行重定向,这表示临时重定向。如果页面被永久移动,则可以指定301 HTTP状态代码:

Route::permanentRedirect('/here', '/there');
/* OR */
Route::redirect('/here', '/there', 301);

Laravel文档:https://laravel.com/docs/5.8/routing#redirect-routes