Lỗi Laravel: NotFoundHttpException in RouteCollection.php line 161
Trong Laravel có nhiều lỗi, theo đánh giá của mình thì hay gặp và gây khó chịu nhất là lỗi NotFoundHttpException in RouteCollection.php line 161. Để khắc phục lỗi này mình đề xuất hướng giải quyết sau, hi vọng giúp ích cho các bạn. Giả sử thư mục gốc của trang web bạn là: ...
Trong Laravel có nhiều lỗi, theo đánh giá của mình thì hay gặp và gây khó chịu nhất là lỗi NotFoundHttpException in RouteCollection.php line 161.
Để khắc phục lỗi này mình đề xuất hướng giải quyết sau, hi vọng giúp ích cho các bạn.
Giả sử thư mục gốc của trang web bạn là: C:/xampp/htdocs/laravel
Như vậy trên trình duyệt sẽ là: http://localhost/laravel
Bước 1: Check index route
Bạn hãy kiểm tra chắc chắn website mình đang chạy trên:
http://localhost/laravel
hay
http://localhost/laravel/public
Laravel được cấu hình để chạy trên các server chuyên dụng như homestead.
Nên sau khi setup website xong sẽ có trang index mặc định là http://localhost/laravel/public
các bạn lưu ý điểm này.
Bước 2: Check .htaccess
Giả sử sau khi bước 1 đã check xong bạn thu được kết quả là website chạy trên
http://localhost/laravel/public
và đường dẫn bạn đang chạy bị gặp lỗi là:
http://localhost/laravel/public/hello
Bạn cần kiểm tra xem .htaccess rewriting rules đã có hiệu lực hay chưa bằng cách truy cập liên kết sau:
http://localhost/laravel/public/index.php/hello
Nếu ok như vậy có nghĩa là file .htaccess không có hoặc rewrite module php chưa được cài đặt hoặc bị disable.
Bước 3: Kiểm tra trong cmd
Bước 1 và 2 là những nguyên nhân thường hay gặp nhất, nếu vẫn chưa được yên tâm các bạn hãy thử cách sau đây.
Đầu tiên các bạn chạy cmd tại thư mục root của website, trong ví dụ của mình là laravel. Sau đó gõ lệnh:
php artisan route:list
Lưu ý: trong routes của bạn có callback function chẳng hạn như dưới đây thì có khả năng báo lỗi nhé
Route::get('users/{id}', function() { echo 'callback function'; });
Laravel sẽ liệt kê toàn bộ route có trong project của bạn gồm các trường sau:
+--------+--------------------------------------------------------------+------------- | Domain | Method | URI | Name | Action | Middleware | +--------+--------------------------------------------------------------+------------- | GET|HEAD / home AppHttpControllers[email protected] | web |
Ở đây các bạn quan tâm đến 2 thuộc tính đó là URI và Method, đầu tiên là URI bạn kiểm tra xem URL bạn truy cập có trong danh sách không. Các bạn có thể kiểm tra thủ công bằng mắt, hoặc nhấn Ctrl + F (win 8 trở lên mới có thì phải) để kiểm tra.
Giả sử URL bạn truy cập khớp với 1 bạn ghi trong URI thì bạn kiểm tra xem method của URI đó có hỗ trợ hay không. Như ở trên hỗ trợ method GET hoặc HEAD mà bạn đặt trong form với method POST thì chắn chắn xảy ra lỗi.
Nếu tới đây biết được lỗi rồi thì ok rồi phải không.
Nếu vẫn chưa giải quyết được lỗi, hãy để lại cmt nhé!
Chúc các bạn thành công!