Jus*_*tin 37 http-status-codes laravel laravel-4
我在Laravel文档中找不到重定向为301/302的信息.
在我的routes.php文件中,我使用:
Route::get('foo', function(){
return Redirect::to('/bar');
});
Run Code Online (Sandbox Code Playgroud)
这是默认的301或302吗?有没有办法手动设置它?知道为什么会从文档中省略这一点吗?
mar*_*kli 78
无论何时您不确定,您都可以使用源代码查看Laravel的API文档.该重定向器类定义$status = 302为默认值.
您可以使用以下to()方法定义状态代码:
Route::get('foo', function(){
return Redirect::to('/bar', 301);
});
Run Code Online (Sandbox Code Playgroud)
Luc*_*ini 15
我更新了Laravel 5的答案!现在你可以在docs redirect helper上找到:
return redirect('/home');
return redirect()->route('route.name');
Run Code Online (Sandbox Code Playgroud)
像往常一样..每当您不确定时,您可以查看Laravel的API文档和源代码.该重定向器类定义了一个$状态= 302作为默认值(302是临时重定向).
如果您希望永久URL重定向(HTTP响应状态代码301永久移动),您可以使用redirect()函数定义状态代码:
Route::get('foo', function(){
return redirect('/bar', 301);
});
Run Code Online (Sandbox Code Playgroud)
Laravel 301和302使用redirect()和route()进行重定向
301(永久):
return redirect(route('events.show', $slug), 301);
Run Code Online (Sandbox Code Playgroud)
302(临时):
默认情况下,Route::redirect 返回 302 状态代码。
return redirect()->route('events.show', $slug);
Run Code Online (Sandbox Code Playgroud)
Laravel 官方文档,“重定向路由”:https://laravel.com/docs/5.8/routing#redirect-routes
martinstoeckli的答案对于静态URL很好,但是对于动态URL,您可以使用以下内容。
Route::get('foo/{id}', function($id){
return Redirect::to($id, 301);
});
Run Code Online (Sandbox Code Playgroud)
实时示例(我的用例)
Route::get('ifsc-code-of-{bank}', function($bank){
return Redirect::to($bank, 301);
});
Run Code Online (Sandbox Code Playgroud)
这会将http://swiftifsccode.com/ifsc-code-of-sbi重定向 到http://swiftifsccode.com/sbi
再举一个例子
Route::get('amp/ifsc-code-of-{bank}', function($bank){
return Redirect::to('amp/'.$bank, 301);
});
Run Code Online (Sandbox Code Playgroud)
这会将http://amp/swiftifsccode.com/ifsc-code-of-sbi重定向到http://amp/swiftifsccode.com/sbi
| 归档时间: |
|
| 查看次数: |
42503 次 |
| 最近记录: |