> ## Documentation Index
> Fetch the complete documentation index at: https://inertiajs-vi.tuantq.online/llms.txt
> Use this file to discover all available pages before exploring further.

# Redirect

<Warning>Bạn đang xem tài liệu Inertia.js v2. Inertia.js v3 đã được phát hành và hiện là phiên bản mặc định. Hãy xem [hướng dẫn nâng cấp](/v3/getting-started/upgrade-guide) để bắt đầu.</Warning>

Khi thực hiện request Inertia không phải `GET` theo cách thủ công hoặc thông qua phần tử `<Link>`, bạn cần đảm bảo luôn phản hồi bằng một response redirect Inertia hợp lệ.

Ví dụ, nếu controller đang tạo người dùng mới, endpoint "store" nên trả về redirect về một endpoint `GET` thông thường, chẳng hạn trang "index" người dùng. Inertia sẽ tự động đi theo redirect này và cập nhật trang tương ứng.

```php theme={null}
class UsersController extends Controller
{
    public function index()
    {
        return Inertia::render('Users/Index', [
            'users' => User::all(),
        ]);
    }

    public function store(Request $request)
    {
        User::create(
            $request->validate([
                'name' => ['required', 'max:50'],
                'email' => ['required', 'max:50', 'email'],
            ])
        );

        return to_route('users.index');
    }
}
```

## Mã response 303

Khi redirect sau request `PUT`, `PATCH` hoặc `DELETE`, bạn phải dùng mã response `303`; nếu không, request tiếp theo sẽ không được xử lý như request `GET`. Redirect `303` rất giống redirect `302`; tuy nhiên, request tiếp theo được chuyển rõ ràng thành request `GET`.

Nếu đang dùng một trong các adapter phía máy chủ chính thức của Inertia, mọi redirect sẽ tự động được chuyển thành redirect `303`.

## Redirect ra bên ngoài

Đôi khi, trong lúc xử lý request Inertia, bạn cần redirect đến một website bên ngoài hoặc thậm chí một endpoint không dùng Inertia khác trong ứng dụng. Bạn có thể thực hiện việc này bằng một lần truy cập `window.location` được khởi tạo từ phía máy chủ thông qua phương thức `Inertia::location()`.

```php theme={null}
return Inertia::location($url);
```

Phương thức `Inertia::location()` sẽ tạo response `409 Conflict` và đặt URL đích trong header `X-Inertia-Location`. Khi phía client nhận được response này, Inertia sẽ tự động thực hiện truy cập bằng `window.location = url`.

***

## Tài liệu chính thức

Bài dịch này được đối chiếu từ [tài liệu Inertia.js v2 chính thức](https://inertiajs.com/docs/v2/the-basics/redirects). Nếu có khác biệt do phiên bản hoặc cập nhật mới, hãy ưu tiên tài liệu chính thức làm nguồn tham chiếu.
