2016-09-20 9 views
3

Laravelが現在使用しているデフォルト302の代わりに301エラーコードを使用するようにLaravelアプリを更新するにはどうすればよいですか?例えばLaravel 5:302の代わりに301を使用

、私routes.phpに、私は、エラーコード301設定するredirect()機能を使用します。

return redirect('URL_GOES_HERE/', 301);

をしかし、私はアプリで起こって多くのリダイレクトを持っています。すべてのリダイレクトでデフォルトの302301に変更する方法はありますか?デフォルト値 として302を定義する

+0

カスタムエラービューを使用したくないですか? – Nour

+0

@NinoArmaniいいえ、301エラーコードを他のURLにリダイレクトする必要があります。 – Lee

答えて

0

リダイレクタは、ここではそれがRedirector.php についての完全なリファレンスです、あなたはここで

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); 
} 
+0

しかし、 '$ e-> getStatusCode()== 301'は、レスポンスコードが' 301'であるかどうかをチェックしていませんか?私はデフォルトで '302'です。私がする必要があるのは、デフォルトの '302'を' 301'に変更することです。 '301'を使用してリダイレクトされなければならない各URLは、リダイレクトされるべき独自のURLを持っています。 – Lee

関連する問題