Cách chúng ta có thể redirect từ HTTP to HTTPS trong Laravel, ta biết rằng thư mục cấu trúc của laravel có một thư mục là /public, có một số bạn thường tìm cách làm sao để gõ http://localhost/project là sẽ hiện ra website, thay vì mặc định là http://locahost/project/public.
Tốt nhất bạn không nên phá bỏ cấu trúc của laravel, nhiều bạn copy .htaccess và index.php trong public ra root và chỉnh sửa nó để có thể http://localhost/project, nhưng nếu làm vậy bạn sẽ bị một lỗi bảo mật đó là file .env sẽ bị phát hiện http://localhost/project/.env ::)
Cách tốt nhất bạn giữ nguyên cấu trúc laravel như ban đâu, và bạn tiến hành tạo file .htaccess in thư mục root như sau:
File .htaccess
RewriteEngine On RewriteRule ^(.*)$ public/ [L]
Đoạn code trên sẽ trỏ tới thư mục public của laravel, nhưng nó đang dùng là HTTP, để có được HTTPS bạn sửa lại như sau:
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] RewriteRule ^(.*)$ public/ [L] </IfModule>
Vậy là bạn có thể gõ đường dẫn http://domain.com -> https://domain.com