Laravel Redirect HTTP to HTTPS via .htaccess

Laravel Redirect HTTP to HTTPS via .htaccess

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 .htaccessindex.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