Laravel 8 404 không tìm thấy, nhưng tuyến đường tồn tại

Các route cơ bản nhất của Laravel chấp nhận URI và

2, cung cấp một phương pháp xác định route rất đơn giản và rõ ràng

Route::get['foo', function [] {

Tệp định tuyến mặc định

Tất cả các route của Laravel được xác định trong các tệp route của bạn, nằm trong thư mục

3. Các tệp này được tự động tải bởi khung. Tệp
4 xác định các tuyến dành cho giao diện web của bạn. Các tuyến này được chỉ định nhóm phần mềm trung gian
5, cung cấp các tính năng như trạng thái phiên và bảo vệ CSRF. Các tuyến trong
6 là không trạng thái và được chỉ định nhóm phần mềm trung gian
7

Đối với hầu hết các ứng dụng, bạn sẽ bắt đầu bằng cách xác định các tuyến đường trong tệp

4 của mình. Có thể truy cập các tuyến đường được xác định trong
4 bằng cách nhập URL của tuyến đường đã xác định vào trình duyệt của bạn. Ví dụ: bạn có thể truy cập tuyến đường sau bằng cách điều hướng đến

Route::redirect['/here', '/there', 301];

0 trong trình duyệt của mình

Các tuyến đường được xác định trong tệp

6 được lồng trong một nhóm tuyến đường bởi

Route::redirect['/here', '/there', 301];

2. Trong nhóm này, tiền tố URI

Route::redirect['/here', '/there', 301];

3 được tự động áp dụng, do đó bạn không cần phải áp dụng nó theo cách thủ công cho mọi tuyến đường trong tệp. Bạn có thể sửa đổi tiền tố và các tùy chọn nhóm tuyến đường khác bằng cách sửa đổi lớp

Route::redirect['/here', '/there', 301];

2 của mình

Các phương thức bộ định tuyến khả dụng

Bộ định tuyến cho phép bạn đăng ký các tuyến đáp ứng với bất kỳ động từ HTTP nào

Route::get['foo', function [] {

4

Đôi khi bạn có thể cần phải đăng ký một tuyến đường đáp ứng nhiều động từ HTTP. Bạn có thể làm như vậy bằng cách sử dụng phương pháp

Route::redirect['/here', '/there', 301];

5. Hoặc, bạn thậm chí có thể đăng ký một tuyến đáp ứng tất cả các động từ HTTP bằng cách sử dụng phương thức

Route::redirect['/here', '/there', 301];

6

Route::get['foo', function [] {

7

Bảo vệ CSRF

Bất kỳ biểu mẫu HTML nào trỏ đến các tuyến đường

Route::redirect['/here', '/there', 301];

7,

Route::redirect['/here', '/there', 301];

8 hoặc

Route::redirect['/here', '/there', 301];

9 được xác định trong tệp tuyến đường
5 phải bao gồm trường mã thông báo CSRF. Nếu không, yêu cầu sẽ bị từ chối. Bạn có thể đọc thêm về bảo vệ CSRF trong tài liệu CSRF

Chuyển hướng tuyến đường

Nếu bạn đang xác định một tuyến chuyển hướng đến một URI khác, bạn có thể sử dụng phương thức

31. Phương pháp này cung cấp một lối tắt thuận tiện để bạn không phải xác định tuyến đường hoặc bộ điều khiển đầy đủ để thực hiện chuyển hướng đơn giản

Route::redirect['/here', '/there', 301];

Xem các tuyến đường

Nếu tuyến đường của bạn chỉ cần trả về một chế độ xem, bạn có thể sử dụng phương pháp

32. Giống như phương pháp
33, phương pháp này cung cấp một phím tắt đơn giản để bạn không phải xác định một tuyến đường hoặc bộ điều khiển đầy đủ. Phương thức
34 chấp nhận URI làm đối số đầu tiên và tên chế độ xem làm đối số thứ hai. Ngoài ra, bạn có thể cung cấp một mảng dữ liệu để chuyển đến dạng xem dưới dạng đối số thứ ba tùy chọn

3

Tham số tuyến đường

Thông số bắt buộc

Tất nhiên, đôi khi bạn sẽ cần nắm bắt các phân đoạn của URI trong tuyến đường của mình. Ví dụ: bạn có thể cần lấy ID của người dùng từ URL. Bạn có thể làm như vậy bằng cách xác định các tham số tuyến đường

9

Bạn có thể xác định bao nhiêu tham số tuyến đường theo yêu cầu của tuyến đường của bạn

0

Các tham số định tuyến luôn được đặt trong dấu ngoặc nhọn

35 và phải bao gồm các ký tự chữ cái và không được chứa ký tự
36. Thay vì sử dụng ký tự
36, hãy sử dụng dấu gạch dưới [
38]. Các tham số tuyến đường được đưa vào các cuộc gọi lại/bộ điều khiển tuyến đường dựa trên thứ tự của chúng - tên của các đối số cuộc gọi lại/bộ điều khiển không quan trọng

Thông số tùy chọn

Đôi khi, bạn có thể cần chỉ định tham số tuyến đường, nhưng không bắt buộc sự hiện diện của tham số tuyến đường đó. Bạn có thể làm như vậy bằng cách đánh dấu

39 sau tên tham số. Đảm bảo cung cấp giá trị mặc định cho biến tương ứng của tuyến đường

6

Ràng buộc biểu thức chính quy

Bạn có thể hạn chế định dạng của các tham số tuyến đường của mình bằng cách sử dụng phương thức

90 trên một thể hiện tuyến đường. Phương thức
90 chấp nhận tên của tham số và biểu thức chính quy xác định cách hạn chế tham số

9

Ràng buộc toàn cầu

Nếu bạn muốn một tham số định tuyến luôn bị ràng buộc bởi một biểu thức chính quy nhất định, bạn có thể sử dụng phương thức

92. Bạn nên xác định các mẫu này trong phương pháp
93 của

Route::redirect['/here', '/there', 301];

2

Route::get['foo', function [] {

40

Khi mẫu đã được xác định, nó sẽ tự động được áp dụng cho tất cả các tuyến sử dụng tên tham số đó

Route::get['foo', function [] {

41

Tuyến đường được đặt tên

Các tuyến được đặt tên cho phép tạo URL hoặc chuyển hướng thuận tiện cho các tuyến cụ thể. Bạn có thể chỉ định tên cho một tuyến đường bằng cách xâu chuỗi phương thức

95 vào định nghĩa tuyến đường

Route::get['foo', function [] {

42

Bạn cũng có thể chỉ định tên tuyến đường cho các hành động của bộ điều khiển

Tạo URL cho các tuyến đường được đặt tên

Sau khi bạn đã gán tên cho một tuyến nhất định, bạn có thể sử dụng tên của tuyến khi tạo URL hoặc chuyển hướng thông qua hàm toàn cầu

96

Route::get['foo', function [] {

43

Nếu tuyến đường được đặt tên xác định tham số, bạn có thể chuyển tham số làm đối số thứ hai cho hàm

96. Các tham số đã cho sẽ tự động được chèn vào URL ở đúng vị trí của chúng

Route::get['foo', function [] {

44

Kiểm tra tuyến đường hiện tại

Nếu bạn muốn xác định xem yêu cầu hiện tại có được định tuyến đến một tuyến đã đặt tên hay không, bạn có thể sử dụng phương thức

98 trên một thể hiện Tuyến. Ví dụ: bạn có thể kiểm tra tên tuyến đường hiện tại từ phần mềm trung gian tuyến đường

Route::get['foo', function [] {

45

Nhóm tuyến đường

Các nhóm tuyến đường cho phép bạn chia sẻ các thuộc tính tuyến đường, chẳng hạn như phần mềm trung gian hoặc không gian tên, trên một số lượng lớn các tuyến đường mà không cần xác định các thuộc tính đó trên từng tuyến đường riêng lẻ. Các thuộc tính dùng chung được chỉ định ở định dạng mảng làm tham số đầu tiên cho phương thức

99

Phần mềm trung gian

Để gán phần mềm trung gian cho tất cả các tuyến trong một nhóm, bạn có thể sử dụng phương pháp

00 trước khi xác định nhóm. Phần mềm trung gian được thực thi theo thứ tự chúng được liệt kê trong mảng

Route::get['foo', function [] {

46

không gian tên

Một trường hợp sử dụng phổ biến khác cho các nhóm tuyến đường là gán cùng một không gian tên PHP cho một nhóm bộ điều khiển bằng phương thức

01

Route::get['foo', function [] {

47

Hãy nhớ rằng, theo mặc định,

Route::redirect['/here', '/there', 301];

2 bao gồm các tệp tuyến đường của bạn trong một nhóm không gian tên, cho phép bạn đăng ký các tuyến điều khiển mà không chỉ định tiền tố không gian tên
03 đầy đủ. Vì vậy, bạn chỉ cần chỉ định phần không gian tên xuất hiện sau không gian tên cơ sở
03

Định tuyến tên miền phụ

Các nhóm định tuyến cũng có thể được sử dụng để xử lý định tuyến tên miền phụ. Các miền phụ có thể được chỉ định tham số tuyến đường giống như URI tuyến đường, cho phép bạn nắm bắt một phần miền phụ để sử dụng trong tuyến đường hoặc bộ điều khiển của mình. Tên miền phụ có thể được chỉ định bằng cách gọi phương thức

05 trước khi xác định nhóm

Route::get['foo', function [] {

48

Tiền tố tuyến đường

Phương pháp

06 có thể được sử dụng để thêm tiền tố vào mỗi tuyến đường trong nhóm với một URI nhất định. Ví dụ: bạn có thể muốn thêm tiền tố vào tất cả các URI tuyến đường trong nhóm bằng
07

Route::get['foo', function [] {

49

Tiền tố tên tuyến đường

Phương thức

95 có thể được sử dụng để thêm tiền tố vào mỗi tên tuyến đường trong nhóm bằng một chuỗi đã cho. Ví dụ: bạn có thể muốn đặt tiền tố cho tất cả các tên của tuyến đường được nhóm bằng
07. Chuỗi đã cho được thêm tiền tố vào tên tuyến đường chính xác như được chỉ định, vì vậy chúng tôi sẽ đảm bảo cung cấp ký tự
60 ở cuối trong tiền tố

Route::get['foo', function [] {

70

Ràng buộc mô hình tuyến đường

Khi thêm ID mô hình vào hành động của tuyến đường hoặc bộ điều khiển, bạn sẽ thường truy vấn để truy xuất mô hình tương ứng với ID đó. Liên kết mô hình định tuyến Laravel cung cấp một cách thuận tiện để tự động đưa các phiên bản mô hình trực tiếp vào các tuyến đường của bạn. Ví dụ: thay vì thêm ID của người dùng, bạn có thể thêm toàn bộ phiên bản mô hình

61 khớp với ID đã cho

Ràng buộc ngầm định

Laravel tự động giải quyết các mô hình Eloquent được xác định trong các route hoặc hành động của bộ điều khiển có tên biến được gợi ý kiểu khớp với tên đoạn route. Ví dụ

Route::get['foo', function [] {

71

Vì biến

62 được gợi ý kiểu là mô hình
63 Eloquent và tên biến khớp với phân đoạn URI
64, nên Laravel sẽ tự động thêm đối tượng mô hình có ID khớp với giá trị tương ứng từ URI yêu cầu. Nếu không tìm thấy phiên bản mô hình phù hợp trong cơ sở dữ liệu, phản hồi HTTP 404 sẽ tự động được tạo

Tùy chỉnh tên khóa

Nếu bạn muốn liên kết mô hình sử dụng cột cơ sở dữ liệu khác với

65 khi truy xuất một lớp mô hình nhất định, bạn có thể ghi đè phương thức
66 trên mô hình Eloquent

Route::get['foo', function [] {

72

Ràng buộc rõ ràng

Để đăng ký một ràng buộc rõ ràng, hãy sử dụng phương thức

67 của bộ định tuyến để chỉ định lớp cho một tham số nhất định. Bạn nên xác định các ràng buộc mô hình rõ ràng của mình trong phương thức
93 của lớp

Route::redirect['/here', '/there', 301];

2

Route::get['foo', function [] {

73

Tiếp theo, xác định tuyến đường có chứa tham số

64

Route::get['foo', function [] {

74

Vì chúng tôi đã ràng buộc tất cả các tham số

64 với mô hình
63, nên một phiên bản
61 sẽ được đưa vào tuyến đường. Vì vậy, ví dụ, một yêu cầu tới
94 sẽ đưa thể hiện
61 từ cơ sở dữ liệu có ID là
96

Nếu không tìm thấy phiên bản mô hình phù hợp trong cơ sở dữ liệu, phản hồi HTTP 404 sẽ được tạo tự động

Tùy chỉnh logic độ phân giải

Nếu bạn muốn sử dụng logic giải quyết của riêng mình, bạn có thể sử dụng phương pháp

97.
2 mà bạn chuyển đến phương thức
99 sẽ nhận giá trị của phân đoạn URI và sẽ trả về thể hiện của lớp sẽ được đưa vào tuyến đường

Route::get['foo', function [] {

75

Tuyến dự phòng

Sử dụng phương pháp

Route::get['foo', function [] {

400, bạn có thể xác định một tuyến đường sẽ được thực hiện khi không có tuyến đường nào khác phù hợp với yêu cầu đến. Thông thường, các yêu cầu chưa được xử lý sẽ tự động hiển thị trang "404" thông qua trình xử lý ngoại lệ của ứng dụng của bạn. Tuy nhiên, vì bạn có thể xác định tuyến đường

Route::get['foo', function [] {

401 trong tệp
4 của mình, tất cả phần mềm trung gian trong nhóm phần mềm trung gian
5 sẽ áp dụng cho tuyến đường. Tất nhiên, bạn có thể thêm phần mềm trung gian bổ sung vào tuyến đường này nếu cần

Route::get['foo', function [] {

76

Giới hạn tỷ lệ

Laravel bao gồm một phần mềm trung gian để xếp hạng quyền truy cập giới hạn vào các tuyến trong ứng dụng của bạn. Để bắt đầu, hãy gán phần mềm trung gian

Route::get['foo', function [] {

404 cho một tuyến hoặc một nhóm tuyến. Phần mềm trung gian

Route::get['foo', function [] {

404 chấp nhận hai tham số xác định số lượng yêu cầu tối đa có thể được thực hiện trong một số phút nhất định. Ví dụ: hãy xác định rằng người dùng được xác thực có thể truy cập nhóm tuyến sau 60 lần mỗi phút

Route::get['foo', function [] {

77

Giới hạn tốc độ động

Bạn có thể chỉ định tối đa yêu cầu động dựa trên một thuộc tính của mô hình

61 đã xác thực. Ví dụ: nếu mô hình
61 của bạn chứa thuộc tính

Route::get['foo', function [] {

408, bạn có thể chuyển tên của thuộc tính cho phần mềm trung gian

Route::get['foo', function [] {

404 để nó được sử dụng để tính số lượng yêu cầu tối đa

Route::get['foo', function [] {

78

Giả mạo phương thức biểu mẫu

Biểu mẫu HTML không hỗ trợ các hành động

Route::redirect['/here', '/there', 301];

8,

Route::get['foo', function [] {

411 hoặc

Route::redirect['/here', '/there', 301];

9. Vì vậy, khi xác định các tuyến đường

Route::redirect['/here', '/there', 301];

8,

Route::get['foo', function [] {

411 hoặc

Route::redirect['/here', '/there', 301];

9 được gọi từ biểu mẫu HTML, bạn sẽ cần thêm trường

Route::get['foo', function [] {

416 ẩn vào biểu mẫu. Giá trị được gửi với trường

Route::get['foo', function [] {

416 sẽ được sử dụng làm phương thức yêu cầu HTTP

Route::get['foo', function [] {

79

Bạn có thể sử dụng chỉ thị

Route::get['foo', function [] {

418 Blade để tạo đầu vào

Route::get['foo', function [] {

416

0

Truy cập tuyến đường hiện tại

Bạn có thể sử dụng các phương thức

Route::get['foo', function [] {

420,

Route::get['foo', function [] {

421 và

Route::get['foo', function [] {

422 trên mặt tiền

Route::get['foo', function [] {

423 để truy cập thông tin về tuyến đường xử lý yêu cầu đến

1

Tham khảo tài liệu API cho cả lớp cơ bản của Route facade và Route instance để xem xét tất cả các phương pháp có thể truy cập

Làm cách nào tôi có thể giải quyết lỗi 404 Không tìm thấy này ngay cả khi Tuyến tồn tại?

Dưới đây là một số cách bạn có thể thử khắc phục lỗi 404. Kiểm tra kỹ URL bạn đã nhập, đặc biệt nếu bạn nhập bằng tay. Làm mới trang web. Sử dụng Google [hoặc một công cụ tìm kiếm tương tự] để thử và tìm lại trang này .

Làm cách nào để xử lý lỗi 404 trong Laravel 8?

Trang 404 mặc định. tập tin bên trong thư mục đó. Vì vậy, về cơ bản laravel sẽ thiết kế mặc định, nhưng nếu bạn tạo tệp 404 vào thư mục "lỗi" thì nó sẽ lấy từ đó. Vì vậy, bạn chỉ cần tạo tệp 404 blade và đặt mã của riêng bạn như tôi đã thêm sau đó bạn có thể kiểm tra dễ dàng.

Làm cách nào để chuyển hướng đến trang 404 trong Laravel 8?

Làm cách nào để chuyển hướng trang 404? .
Trong Công cụ > Chuyển hướng > Thêm chuyển hướng mới
Trong hộp URL nguồn, hãy nhập hoặc dán URL bị hỏng/cũ/đã thay đổi
Trong hộp URL mục tiêu, nhập hoặc dán URL mới
Chọn tham gia URL và liên kết giới thiệu trong trình đơn thả xuống phù hợp
Trong hộp Hành động, chọn Chuyển hướng đến URL

404 not found nghĩa là gì trong Laravel?

Lỗi 404 là sự cố phía máy khách cho biết không thể tìm thấy URL được yêu cầu trên máy chủ . Nó có thể xảy ra vì một số lý do, chẳng hạn như tên miền không được trỏ chính xác, bị hỏng. htaccess hoặc quyền của tệp bị định cấu hình sai.

Chủ Đề