使用重新導向(Using redirects)

1. 301

假設我們本來有個頁面http://example.com/item2,但是這個頁面已經永遠移動到http://example.com/item1了。因為很可能有不少使用者或搜尋引擎已經使用了http://example.com/item2,不管是書籤、文章、或者存進資料庫……等等,所以我們不能直接移除 http://webproject.ru/item2這個網址。

這時候,我們可以使用 301 重新導向:

class MyController extends Controller
{
    public function beforeAction($action)
    {
        if (in_array($action->id, ['item2'])) {
            Yii::$app->response->redirect(Url::to(['item1']), 301);
            Yii::$app->end();
        }
        return parent::beforeAction($action);
    }

如果要更方便,可以增加一個陣列。這樣當你需要增加重導向網址的時候,就只需要多加一個鍵值對(key-value pair):

class MyController extends Controller
{
    public function beforeAction($action)
    {
        $toRedir = [
            'item2' => 'item1',
            'item3' => 'item1',
        ];

        if (isset($toRedir[$action->id])) {
            Yii::$app->response->redirect(Url::to([$toRedir[$action->id]]), 301);
            Yii::$app->end();
        }
        return parent::beforeAction($action);
    }

2. 其他資料

results matching ""

    No results matching ""