Khi triển khai Laravel trên shared host, việc tên miền không trỏ đúng vào thư mục public sẽ gây lỗi truy cập và tiềm ẩn rủi ro bảo mật do làm lộ các tệp tin nhạy cảm. Bài viết này mình sẽ hướng dẫn bạn thêm .htaccess để chuyển hướng đến public trong Laravel một cách chính xác, giúp ứng dụng hoạt động đúng và an toàn.
Những điểm chính
- Lý do chuyển hướng .htaccess: Hiểu tầm quan trọng của việc bảo mật mã nguồn và khắc phục lỗi truy cập khi triển khai ứng dụng Laravel trên hosting.
- Hướng dẫn cấu hình .htaccess: Nắm được 3 bước thực hành chi tiết để tạo file, thêm mã nguồn và kiểm tra chuyển hướng đến thư mục public thành công.
- Giới thiệu nhà cung cấp hosting: Biết đến Vietnix như một giải pháp hosting uy tín, cung cấp nền tảng ổn định, bảo mật và tốc độ cao cho website doanh nghiệp.
- FAQ: Giải đáp các thắc mắc liên quan đến quá trình thêm file .htaccess để chuyển hướng đến public trong Laravel

Lý do cần thêm .htaccess để chuyển hướng đến thư mục public trong Laravel?
Theo kiến trúc mặc định của Laravel, toàn bộ mã nguồn ứng dụng (model, controller, route, v.v.) được đặt bên ngoài thư mục public nhằm tăng cường tính bảo mật. Tuy nhiên, khi triển khai trên các môi trường hosting phổ biến, tên miền thường được cấu hình để trỏ vào thư mục gốc (root) của dự án thay vì thư mục public. Tình trạng này dẫn đến việc truy cập website sẽ gây ra lỗi “403 Forbidden” hoặc làm lộ cấu trúc thư mục.
Giải pháp là sử dụng file .htaccess để chuyển hướng (redirect) toàn bộ yêu cầu truy cập vào thư mục /public của Laravel.

Việc cấu hình môi trường triển khai, như tinh chỉnh tệp .htaccess, là một phần quan trọng để đảm bảo ứng dụng Laravel hoạt động đúng cách và an toàn. Đối với các trang web doanh nghiệp có yêu cầu cao về hiệu suất và độ ổn định, việc lựa chọn một nền tảng hosting chuyên dụng trở nên thiết yếu. Các gói business web hosting từ Vietnix, một giải pháp cho thuê hosting cao cấp, được thiết kế để đáp ứng chính xác những nhu cầu này, cung cấp một môi trường được tối ưu hóa sẵn sàng cho các ứng dụng đòi hỏi tài nguyên lớn và bảo mật tuyệt đối.

HOSTING BUSINESS – Hiệu suất vượt trội
LiteSpeed Enterprise & PHP X-RAY tối ưu hiệu suất website
Mua ngay3 bước thêm .htaccess để chuyển hướng đến public trong Laravel
Bước 1: Xác định vị trí file .htaccess cần thêm
Bước 2: Thêm nội dung chuyển hướng
Bước 3: Lưu và kiểm tra kết quả
Bước 1: Xác định vị trí file .htaccess cần thêm
Đầu tiên bạn mở thư mục chứa toàn bộ mã nguồn Laravel (nằm cùng cấp với thư mục public). Trường hợp chưa có file .htaccess, hãy bắt đầu tạo mới file .htaccess.

Bước 2: Thêm nội dung chuyển hướng
Tiếp theo, dán đoạn mã sau vào file .htaccess:
<IfModule mod_rewrite.c>
# That was ONLY to protect you from 500 errors
# if your server did not have mod_rewrite enabled
RewriteEngine On
# RewriteBase /
# NOT needed unless you're using mod_alias to redirect
RewriteCond %{REQUEST_URI} !/public
RewriteRule ^(.*)$ public/$1 [L]
# Direct all requests to /public folder
</IfModule>Giải thích:
- <IfModule mod_rewrite.c>: Đây là một điều kiện kiểm tra xem module mod_rewrite có được bật trên máy chủ không. Điều này đảm bảo rằng đoạn mã chỉ hoạt động khi module mod_rewrite đã được bật.
- RewriteEngine On: Dòng này bật tính năng rewrite (chuyển hướng) trên máy chủ.
- RewriteCond %{REQUEST_URI} !/public: Dòng này là một điều kiện sử dụng để kiểm tra nếu đường dẫn yêu cầu không bắt đầu bằng “/public”. Điều này đảm bảo rằng các yêu cầu đến thư mục “public” đã được chuyển hướng sẽ không bị lặp lại.
- RewriteRule ^(.*)$ public/$1 [L]: Dòng này là quy tắc rewrite thực tế, áp dụng khi điều kiện ở trên được đáp ứng. Dòng này chuyển hướng toàn bộ đường dẫn yêu cầu (bao gồm cả các phần con) đến thư mục “public”. Phần [L] cho biết rằng đây là quy tắc cuối cùng (last rule) và không cần kiểm tra các quy tắc rewrite khác nữa.
- </IfModule>: Đây đóng kết thúc điều kiện kiểm tra module mod_rewrite.

Bước 3: Lưu và kiểm tra kết quả
Sau khi lưu file .htaccess, truy cập lại website qua domain chính, sẽ có 2 trường hợp:
- Nếu cấu hình đúng, website Laravel sẽ hiển thị trang chủ bình thường.
- Nếu vẫn lỗi 500 hoặc trắng trang bạn hãy kiểm tra lại xem hosting có hỗ trợ mod_rewrite hay chưa, hoặc bật debug log để kiểm tra thêm.

Sau khi cấu hình file .htaccess, toàn bộ yêu cầu truy cập sẽ được tự động định tuyến về thư mục public. Điều này đảm bảo website Laravel có thể vận hành chính xác trên shared hosting mà không đòi hỏi các thao tác cấu hình phức tạp.
Sử dụng file .htaccess là giải pháp hiệu quả để triển khai ứng dụng Laravel một cách an toàn và đúng chuẩn trên môi trường hosting sử dụng Apache. Ưu điểm của phương pháp này là sự nhanh chóng, đơn giản trong triển khai và phù hợp ngay cả với người dùng không có nhiều chuyên môn kỹ thuật.
Lưu ý
Để đảm bảo quá trình diễn ra suôn sẻ, bạn nên kiểm tra module mod_rewrite đã được kích hoạt và quyền truy cập thư mục đã được thiết lập chính xác trước khi tải file lên nhằm tránh các lỗi không mong muốn.
Vietnix: Giải pháp hosting uy tín – Nền tảng cho website ổn định, bảo mật và tốc độ cao
Với hơn 13 năm kinh nghiệm, Vietnix đã khẳng định vị thế là nhà cung cấp giải pháp cho thuê hosting uy tín hàng đầu tại Việt Nam, được tin dùng bởi hàng chục ngàn khách hàng cá nhân và doanh nghiệp. Nền tảng của Vietnix được xây dựng với mục tiêu cốt lõi là mang lại sự ổn định, bảo mật và hiệu suất tối ưu, giúp doanh nghiệp xây dựng một hiện diện trực tuyến vững chắc và chuyên nghiệp.
Lựa chọn dịch vụ của Vietnix đồng nghĩa với việc bạn nhận được cam kết mạnh mẽ về chất lượng:
- Giải quyết sự cố kịp thời: Đội ngũ kỹ thuật chuyên môn cao luôn túc trực 24/7/365, đảm bảo mọi vấn đề được xử lý nhanh chóng để website của bạn luôn hoạt động ổn định, liên tục.
- Bảo mật tuyệt đối dữ liệu website: Hệ thống bảo mật đa tầng chủ động ngăn chặn, mã độc, ransomware,… bảo vệ an toàn cho dữ liệu quan trọng của doanh nghiệp.
- Website tải nhanh dưới 1 giây: Nhờ nền tảng phần cứng mạnh mẽ kết hợp công nghệ tối ưu hiện đại, website của bạn sẽ đạt tốc độ truy cập ấn tượng, nâng cao trải nghiệm người dùng và lợi thế SEO.
- Cam kết hiệu suất, bảo mật và ổn định: Vietnix đảm bảo môi trường hosting luôn hoạt động với hiệu suất cao và uptime lên đến 99.9%, mang lại sự an tâm tuyệt đối.
Hãy lựa chọn Vietnix để xây dựng nền tảng trực tuyến vững chắc và bứt phá cho doanh nghiệp của bạn ngay hôm nay
Câu hỏi thường gặp
Tại sao tôi cần chuyển hướng tên miền vào thư mục public của Laravel?
Vì lý do bảo mật. Thư mục public được thiết kế là “cửa ngõ” (Document Root) duy nhất của ứng dụng. Mọi yêu cầu (request) phải đi qua file public/index.php. Việc này giúp ngăn chặn người dùng truy cập trực tiếp vào các file mã nguồn và file cấu hình nhạy cảm (như .env, config, storage).
Tôi nên đặt file .htaccess này ở đâu?
Đặt ở thư mục gốc (root) của dự án Laravel. Đây là vị trí quan trọng để nó có thể “bắt” tất cả các yêu cầu gửi đến tên miền của bạn.
Có cách nào khác tốt hơn mà không cần dùng .htaccess không?
Có. Cách tốt nhất và được khuyến nghị là cấu hình trực tiếp “Document Root” (hoặc “Web Root”) của web server (ví dụ: Apache, Nginx) trỏ thẳng vào thư mục public của Laravel. Phương pháp này thường chỉ áp dụng được khi bạn có quyền quản trị VPS hoặc server riêng. File .htaccess là giải pháp thay thế phổ biến cho môi trường shared hosting.
Hy vọng với hướng dẫn chi tiết ở trên, bạn có thể tự tin thêm .htaccess để chuyển hướng đến public trong Laravel một cách nhanh chóng và chính xác. Bằng cách áp dụng phương pháp này, bạn không chỉ khắc phục được lỗi truy cập mà còn tăng cường bảo mật cho ứng dụng, đảm bảo website hoạt động ổn định và chuyên nghiệp trên các môi trường hosting phổ biến chỉ với vài bước đơn giản. Để tìm hiểu thêm nhiều thủ thuật hữu ích khác về quản trị hosting, bạn có thể tham khảo các bài viết dưới đây:














