Khi deploy website Laravel lên hosting hoặc VPS, rất nhiều trường hợp website chỉ truy cập được qua đường link
https://domain.com/public
Thay vì:
https://domain.com
Điều này không chuẩn SEO, gây khó chịu cho người dùng và tiềm ẩn rủi ro bảo mật. Bài viết này sẽ hướng dẫn bạn các cách chuyển hướng Laravel từ /public sang thư mục chính chuẩn nhất
Vì sao Laravel mặc định chạy trong thư mục /public?
Vai trò của thư mục /public trong Laravel
Thư mục /public là Document Root chuẩn của Laravel, chứa:
- index.php
- CSS, JS, images
- File public cho web server truy cập
Các thư mục khác (app, config, storage) không được public để đảm bảo bảo mật.
Tại sao không nên để website chạy ở domain.com/public?
Nhược điểm khi để /public trong URL
- URL xấu, không thân thiện SEO
- Dễ bị Google index trùng nội dung
- Lộ cấu trúc framework
- Trải nghiệm người dùng kém
Giải pháp đúng: trỏ domain trực tiếp vào /public hoặc cấu hình rewrite.
Các cách chuyển hướng website Laravel từ /public lên domain chính
Tổng quan các phương án
Có 2 cách phổ biến:
- Trỏ Document Root về /public
- Rewrite bằng file .htacces
Cách 1: Trỏ Document Root domain vào thư mục /public
Nguyên lý hoạt động
- Domain trỏ thẳng vào tenmien/public
- Không cần rewrite phức tạp
- Chuẩn Laravel + chuẩn bảo mật
Cấu trúc thư mục ví dụ
/home/user/domain/
├── app
├── config
├── storage
└── public
Khi addon domain cần trỏ tới:
/home/user/domain/publicTuy nhiên nếu tên miền của bạn đang là tên miền chính của hosting, mặc định chạy qua thư mục public_html thì bạn làm theo cách 2 như sau.
Cách 2: Dùng .htaccess chuyển hướng /public
Cách thực hiện
Bước 1: Copy nội dung public ra ngoài
Copy file trong folder /public ra thư mục gốc:
index.php
.htaccessBước 2: Sửa file index.php
Mở file index.php, chỉnh lại đường dẫn như sau:
require __DIR__.'/../vendor/autoload.php';
$app = require_once __DIR__.'/../bootstrap/app.php';Bước 3: Cấu hình .htaccess
File .htaccess tại thư mục gốc, bạn sửa lại như sau:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>Chúc bạn thực hiện thành công !



























