Laravel 5:使用301而不是302

时间:2016-09-20 10:23:27

标签: php laravel redirect laravel-5

如何在重定向时更新我的​​Laravel应用以使用301错误代码,而不是Laravel当前使用的默认302

例如,在我的routes.php中,我使用redirect()函数设置错误代码301

return redirect('URL_GOES_HERE/', 301);

但我在应用中发生了很多重定向。有没有办法在所有重定向中简单地将默认302更改为301

2 个答案:

答案 0 :(得分:0)

重定向器将302定义为默认值 这里是关于Redirector.php的完整参考 你可以覆盖它

答案 1 :(得分:0)

在这里检查错误响应代码 应用/异常/ Handler.php

public function render($request, Exception $e)
{
  // If response code 404 then do this
  if($e->getStatusCode() == 404)
  {  
    return redirect()->to('/error'); 
  }

  // If response code 301
  if($e->getStatusCode() == 301)
  {  
    return redirect()->to('/do'); 
  }

  if ($e instanceof ModelNotFoundException) {
    $e = new NotFoundHttpException($e->getMessage(), $e);
  }

  if ($e instanceof \Illuminate\Session\TokenMismatchException) {
    return redirect('/')->with('message', 'Sorry, your session seems to have expired. Please login again.');
  }

  return parent::render($request, $e);
}